UVa--400 Unix ls(格式输出)
来源:互联网 发布:项目管理系统源码 编辑:程序博客网 时间:2024/05/22 07:52
UVa 400
题解
模拟 Unix 的 ls 命令。
输入n以及n个文件名,排序后按照列优先的次序左对齐输出。
注意:
The rightmost column will be the width of the longest filename and all other columns will be the width of the longest filename plus 2.
据此,可以计算输出有多少行和列。
设最长文件名的长度为 maxLen,则
列数:
行数:
#include <bits/stdc++.h>using namespace std;const int maxcol = 60;const int maxn = 100 + 5;string filenames[maxn];void print(const string &str, int len, char ch){ cout << str; for(int i = 0; i < len - str.length(); ++i) cout << ch;}int main(){ #ifdef LOCAL freopen("data.in", "r", stdin); #endif // LOCAL for(int n; cin >> n; ) { int maxLen = 0; for(int i = 0; i < n; ++i){ cin >> filenames[i]; maxLen = max(maxLen, (int)filenames[i].length()); } int cols = (maxcol - maxLen) / (maxLen + 2) + 1, rows = (n - 1) / cols + 1; //向上取整 print("", maxcol, '-'); cout << endl; sort(filenames, filenames + n); for(int i = 0; i < rows; ++i) { for(int j = 0; j < cols; ++j) { int idx = j * rows + i; if(idx < n) print(filenames[idx], j == cols - 1 ? maxLen : maxLen + 1, ' '); } cout << endl; } } return 0;}
0 0
- UVa--400 Unix ls(格式输出)
- UVa 400 Unix ls(排序+输出控制)
- [UVA400]Unix ls[格式输出]
- UVa 400 - Unix ls
- uva 400 Unix ls
- UVA 400 - Unix ls
- uva 400 - Unix ls
- uva-400-Unix ls
- UVa 400 - Unix ls
- UVA 400 Unix ls
- UVa 400 - Unix ls
- uva 400 - Unix ls
- UVa - 400 - Unix ls
- uva 400 Unix ls
- UVa 400 - Unix ls
- UVa 400 - Unix ls
- UVa:400 - Unix ls
- UVa 400 - Unix ls
- Android shell 脚本
- 手机高温警告提示内容不匹配的分析【多次调用PendingIntent.getBroadcast,intent数据不更新】
- 使用Bundle.putSerializable() 在Activity中交换数据
- PHP数组操作
- eclipse中的android布局文件的快捷键Alt+/不起作用的一种解决方法
- UVa--400 Unix ls(格式输出)
- python中的引用
- iOS常见的错误大全
- 重写前奏~继承和多态
- c# - Cache Code
- IOS开发 钥匙串 证书“此证书的签发者无效”解决方法(详细!!)
- Android应用程序权限机制的源代码分析(1)
- Android中保存网络图片到SD卡
- jquery.validate 自定义验证方法