您的位置:首页 > 其它

uva 400 - Unix ls

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

#include<iostream>
#include<string>
#include<stdio.h>
#include<iomanip>
#include<vector>
#include<stdlib.h>
#include<algorithm>
using namespace std;
int main(){
int n;
vector<string> words;
while(cin>>n){
getchar();
string l;
int max=0;
for(int i=0;i<n;i++){
getline(cin,l);
if(max<l.size())
max=l.size();
words.push_back(l);
}
sort(words.begin(),words.end());
cout<<"------------------------------------------------------------"<<endl;
int columnnum=(60-max)/(max+2)+1;
int rownum=(n%columnnum>0)?(n/columnnum+1):(n/columnnum);
for(int i=0;i<rownum;i++){
for(int j=0;j<columnnum;j++){
if(i+j*rownum>=n)
break;
cout<<words[i+j*rownum];
for(int k=words[i+j*rownum].size();k<((j==columnnum)?(max):(max+2));k++){
cout<<" ";
}
}
cout<<endl;
}
words.clear();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: