Unix ls UVA

来源:互联网 发布:保洁派单软件 编辑:程序博客网 时间:2024/06/06 02:20

问题类型 :字符数组,STL,输出控制。

03pie’s solution for [UVA-400]

#include<iostream> #include<string> #include<algorithm> using namespace std;const int maxn=100+5;const int maxcol=60;string filenames[maxn];void print(const string& s,int len,char extra){    cout<<s;    for(int i=0;i<len-s.length();i++)        cout<<extra;}int main(){    //    freopen("F://inp.txt","r",stdin);    int n;    while(cin>>n){        int M=0;        for(int i=0;i<n;i++){            cin>>filenames[i];              M=max(M,(int)filenames[i].length());        }           int cols=(maxcol-M)/(M+2)+1,rows=(n-1)/cols+1;        print("",60,'-');        cout<<"\n";        sort(filenames,filenames+n);        for(int r=0;r<rows;r++){            for(int c=0;c<cols;c++){                int idx=c*rows+r;                if(idx<n)print(filenames[idx],c==cols-1?M:M+2,' ');            }            cout<<"\n";        }    }    return 0;}
0 0
原创粉丝点击