UVaOJ 400 - Unix ls
来源:互联网 发布:网络最流行的话语 编辑:程序博客网 时间:2024/05/21 22:36
AOAPC I: Beginning Algorithm Contests (Rujia Liu) :: Volume 1. Elementary Problem Solving ::Sorting/Searching
Description
Unix 系统输出文件列表的方式是:
- 每行最多有60个字符。
- 最右边一列的长度为文件名长度的最大值。
- 除了最右边一列, 其他列的长度为文件名长度的最大值 + 2。
- 文件名按字典序, 从上到下输出。
其他细节参考输出样例。
输入 n 个文件名, 输出 Unix 下的文件列表。
Type
Sorting/Searching
Analysis
文件名排序并不难, 关键是如何输出。
输出时, 依次计算出
列数[= (60 + 2) / 文件名长度的最大值]、
行数[= (n + 列数 - 1) / 列数]。
之后即可方便地输出文件名。
Solution
// UVaOJ 400// Unix ls// by A Code Rabbit#include <algorithm>#include <iomanip>#include <iostream>using namespace std;const int MAXN = 102;int n;string filenames[MAXN];int max_len;int main() { while (cin >> n) { // Input and solve. max_len = 0; for (int i = 0; i < n; i++) { cin >> filenames[i]; max_len = max((int)filenames[i].length(), max_len); } sort(filenames, filenames + n); // Output. for (int i = 0; i < 60; i++) cout << '-'; cout << endl; int len_row = max_len + 2; int num_col = 62 / len_row; int num_row = (n + num_col - 1) / num_col; for (int i = 0; i < num_row; i++) { for (int j = 0; j < num_col; j++) if (j * num_row + i < n) cout << setw(len_row) << left << filenames[j * num_row + i]; cout << endl; } } return 0;}
- UVaOJ 400 - Unix ls
- uvaoj-400:Unix Is
- UVa 400 - Unix ls
- uva 400 Unix ls
- UVA 400 - Unix ls
- 400 - Unix ls
- uva 400 - Unix ls
- uva-400-Unix ls
- 400 - Unix ls
- UVa 400 - Unix ls
- 400 - Unix ls
- UVA 400 Unix ls
- UVa 400 - Unix ls
- uva 400 - Unix ls
- UVa - 400 - Unix ls
- uva 400 Unix ls
- 400 - Unix ls
- UVa 400 - Unix ls
- 26 个 jQuery使用技巧
- C++指针精髓
- BAT批处理学习
- derby初学教程
- C#第一课
- UVaOJ 400 - Unix ls
- Java中super关键字的三种用法
- ICCAVR软件编译时出现found pointer to const unsigned char expected pointer to unsigned char
- 看马云励志演讲有感
- 人体必需六大营养素
- Distant Galaxy
- 程序员需要明确的职业发展方向
- DIV、UL、li、image水平竖直居中代码大全(for ie firefox opera)~
- 放弃uboot和内核移植