UVa 400 (水题) Unix ls
题意:
有n个文件名,排序后按列优先左对齐输出。设最长的文件名的长度为M,则最后一列长度为M,其他列长度为M+2.
分析:
这道题很简单,但要把代码写的精炼,还是要好好考虑一下的。lrj的代码中有两个亮点,一个是print子函数,一个就是行数的计算。用心体会
#include <iostream>
#include <cstdio>
#include <string>
#include <algorithm>
using namespace std; const int maxl = ;
const int maxn = + ;
string names[maxn]; void print(const string& s, int len, char extra)
{
printf("%s", s.c_str());
for(int i = s.length(); i < len; ++i) putchar(extra);
} int main()
{
//freopen("in.txt", "r", stdin);
int n;
while(scanf("%d", &n) == )
{
int M = ;
for(int i = ; i < n; ++i)
{
cin >> names[i];
M = max(M, (int)names[i].length());
}
sort(names, names + n);
int cols = (maxl - M) / (M + ) + , rows = (n - ) / cols + ;
print("", , '-');
puts("");
for(int r = ; r < rows; ++r)
{
for(int c = ; c < cols; ++c)
{
int index = c * rows + r;
if(index < n) print(names[index], c == cols- ? M : M+, ' ');
}
puts("");
}
} return ;
}
代码君
UVa 400 (水题) Unix ls的更多相关文章
- UVa 1595 (水题) Symmetry
颓废的一个下午,一直在切水题,(ˉ▽ ̄-) 首先如果这些点是对称的话,那么它们的对称轴就是x = m,m是横坐标的平均值. 把这些点放到一个集合里,然后扫描每个点,计算出它关于x = m的对称点,看这 ...
- UVa 10391 (水题 STL) Compound Words
今天下午略感无聊啊,切点水题打发打发时间,=_=|| 把所有字符串插入到一个set中去,然后对于每个字符串S,枚举所有可能的拆分组合S = A + B,看看A和B是否都在set中,是的话说明S就是一个 ...
- UVa 10935 (水题) Throwing cards away I
直接用STL里的queue模拟即可. #include <cstdio> #include <queue> using namespace std; ; int discard ...
- UVa 1593 (水题 STL) Alignment of Code
话说STL的I/O流用的还真不多,就着这道题熟练一下. 用了两个新函数: cout << std::setw(width[j]); 这个是设置输出宽度的,但是默认是在右侧补充空格 所 ...
- UVa 11040 (水题) Add bricks in the wall
题意: 45块石头如图排列,每块石头上的数等于下面支撑它的两数之和,求其余未表示的数. 分析: 首先来计算最下面一行的数,A71 = A81 + A82 = A91 + 2A92 + A93,变形得到 ...
- Square Numbers UVA - 11461(水题)
#include <iostream> #include <cstdio> #include <sstream> #include <cstring> ...
- UVA 400 - Unix ls (Unixls命令)
csdn : https://blog.csdn.net/su_cicada/article/details/86773007 例题5-8 Unixls命令(Unix ls,UVa400) 输入正整数 ...
- UVa 489 HangmanJudge --- 水题
UVa 489 题目大意:计算机给定一个单词让你猜,你猜一个字母,若单词中存在你猜测的字母,则会显示出来,否则算出错, 你最多只能出错7次(第6次错还能继续猜,第7次错就算你失败),另注意猜一个已经猜 ...
- UVa 1339 Ancient Cipher --- 水题
UVa 1339 题目大意:给定两个长度相同且不超过100个字符的字符串,判断能否把其中一个字符串重排后,然后对26个字母一一做一个映射,使得两个字符串相同 解题思路:字母可以重排,那么次序便不重要, ...
随机推荐
- location跳转和header跳转的区别
1:header("location:url") 跳转之前不能有任何输出,如果想在header之前有输出,则要修改php.ini文件.具体 output_handler =mb_o ...
- Demo学习: Collapsible Panels
Collapsible Panels 设置TUniPanel布局属性,布局属性在Ext里是比较常用的属性,当前版本虽已经提供了布局功能,但很不完善,比如当Panel.TitlePosition=tpR ...
- Catalyst揭秘 Day5 optimizer解析
Catalyst揭秘 Day5 optimizer解析 Optimizer是目前为止中catalyst中最重要的部分.主要作用是把analyzed logicalPlan变成optimized Log ...
- eclipse 安装egit 成功后Team中没有显示
主要是版本不太对. 在http://wiki.eclipse.org/EGit/FAQ#Where_can_I_find_older_releases_of_EGit.3F 中找到对应的版本,设置就O ...
- 巧用system函数个性化屏幕显示
函数名:system 功 能: 发出一个DOS命令 用 法: system("DOS命令"); (system函数需加头文件<stdlib.h&g ...
- 编辑器&IDE中适合程序员的字体
adobe的免费字体 source Code Pro
- 【BZOJ 1015】[JSOI2008]星球大战starwar
Description 很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治者整个星系.某一天,凭着一个偶然的机遇,一支反抗军摧毁了帝国的超级武器,并攻下了星系中几乎所有的星球.这些星球通过 ...
- vs中使用过的扩展和好的nuget库
扩展 ReAttach ReAttach gives you an easy way to ReAttaching your prior debug targets. ReAttach stores ...
- dubbo zookeeper模型
本文摘自dubbo的官方文档,原文请参见: http://alibaba.github.io/dubbo-doc-static/User+Guide-zh.htm#UserGuide-zh-Zooke ...
- vncserver 添加用户
1.在vncserver设置登录用户的信息 #vi /etc/sysconfig/vncservers VNCSERVERS="1:root 2:wt" 此处添加用户 ...