原题链接:https://vjudge.net/problem/UVA-400
分类:<string>
备注:排序和字符串处理
代码如下:
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
int main(void)
{
int T;
while (cin >> T)
{
for (int i = 0; i < 60; i++)
cout << "-";
cout << "\n";
int M = 0;
string s;
vector<string>name;
while (T--)
{
cin >> s;
name.push_back(s);
M = max(M, (int)s.length());
}
int col = (60 - M) / (M + 2) + 1;
int row = (name.size() - 1) / col + 1;
sort(name.begin(), name.end());
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
{
int xb = i + j * row;
if (xb < name.size())
{
cout << name[xb];
if (j != col - 1)for (int k = name[xb].length(); k < M + 2; k++)
cout << " ";
else for (int k = name[xb].length(); k < M; k++)
cout << " ";
}
}
cout << "\n";
}
}
return 0;
}