Sunday, September 28, 2014

UVa - 400 - Unix ls


  1. #include <iostream>
  2. #include <vector>
  3. #include <cmath>
  4. #include <algorithm>
  5. using namespace std;
  6.  
  7. int main(){
  8.     int n, mx, sz;
  9.     string file;
  10.     vector <string> srt;
  11.     while(cin >> n){
  12.         mx = 0;
  13.         for(int i = 1; i <= n; i++){
  14.             cin >> file, srt.push_back(file);
  15.             sz = file.size();
  16.             if(sz > mx)mx = sz;
  17.         }
  18.         sort(srt.begin(), srt.end());
  19.         int row, col, temp;
  20.         col = 62 / (mx+2);
  21.         row = ceil(n/(double)col);
  22.         for(int i = 1; i <= 60; i++)cout << "-";
  23.         cout << endl;
  24.         for(int i = 0; i < row; i++){
  25.             for(int k = i; k < n; k += row){
  26.                 cout << srt[k];
  27.                 for(int m = 1; m <= (mx-(srt[k].size()))+2; m++)cout << " ";
  28.             }
  29.             cout << endl;
  30.         }
  31.         srt.clear();
  32.     }
  33.     return 0;
  34. }

No comments:

Post a Comment