背景:多久没有一次ac过了,要提升一次ac的几率啊!这对比赛是很重要的。
思路:这个题主要是更加熟悉了下vector,然后就是一些格式的问题,构造即可。主要感受还是一定要把思路想好再写题!
#include <set>
#include <stack>
#include <queue>
#include <vector>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <algorithm>
#define LL long long int
using namespace std;
const int M=69,INF=0x3fffffff;
bool cmp(string a,string b){
return a < b;
}
int main(void){
int t;
while(~scanf("%d",&t)){
vector<string> vector1;
int Max=0,c,r;
for(int k=1;k <= t;k++){
string string1;
cin >> string1;
if(string1.size() > Max) Max=string1.size();
vector1.push_back(string1);
}
sort(vector1.begin(),vector1.end(),cmp);
c=(60-Max)/(Max+2)+1;
for(r=0;;r++) if(r*c >= t) break;
cout << "------------------------------------------------------------" << endl;
for(int i=0; i < r;i++){
for(int j=0;j < c;j++){
if(j*r + i < vector1.size()){
cout << vector1[j*r+i];
if(j != c-1){
int x=Max+2-vector1[j*r+i].size();
for(int k=x;k > 0;k--) cout << " ";
}
}
}
cout << endl;
}
}
return 0;
}
原文:http://blog.csdn.net/jibancanyang/article/details/44839155