uva 400 - Unix ls

这题其实很简单,但是re了很多次,因为天真到用setw,以及cout<<left来控制输出格式,改成手动后就ac了

 1 #include<iostream>
 2 #include<string>
 3 #include<stdio.h>
 4 #include<iomanip>
 5 #include<vector>
 6 #include<stdlib.h>
 7 #include<algorithm>
 8 using namespace std;
 9 int main(){
10     int n;
11     vector<string> words;
12     while(cin>>n){
13         getchar();
14         string l;
15         int max=0;
16         for(int i=0;i<n;i++){
17             getline(cin,l);
18             if(max<l.size())
19                 max=l.size();
20             words.push_back(l);
21         }
22         sort(words.begin(),words.end());
23         cout<<"------------------------------------------------------------"<<endl;
24         int columnnum=(60-max)/(max+2)+1;
25         int rownum=(n%columnnum>0)?(n/columnnum+1):(n/columnnum);
26         for(int i=0;i<rownum;i++){
27             for(int j=0;j<columnnum;j++){
28                 if(i+j*rownum>=n)
29                     break;
30                 cout<<words[i+j*rownum];
31                 for(int k=words[i+j*rownum].size();k<((j==columnnum)?(max):(max+2));k++){
32                     cout<<" ";
33                 }
34             }
35             cout<<endl;
36         }
37         words.clear();
38     }
39 }

 

posted on 2013-12-26 21:48  云在心  阅读(166)  评论(0)    收藏  举报

导航