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 }
浙公网安备 33010602011771号