1031 Hello World for U (20 分)
Given any string of N (≥5) characters, you are asked to form the characters into the shape of U
. For example, helloworld
can be printed as:
1 | h d |
That is, the characters must be printed in the original order, starting top-down from the left vertical line with n1 characters, then left to right along the bottom line with n2 characters, and finally bottom-up along the vertical line with n3 characters. And more, we would like U
to be as squared as possible — that is, it must be satisfied that n1=n3=max { k | k≤n2 for all 3≤n2≤N } with n1+n2+n3−2=N.
Input Specification:
Each input file contains one test case. Each case contains one string with no less than 5 and no more than 80 characters in a line. The string contains no white space.
Output Specification:
For each test case, print the input string in the shape of U as specified in the description.
Sample Input:
1 | helloworld! |
Sample Output:
1 | h ! |
作者: CHEN, Yue
单位: 浙江大学
时间限制: 400 ms
内存限制: 64 MB
代码长度限制: 16 KB
分析
将一个字符串按照u型输出。这里关键是确定n1,n2,n3的大小。注意n1=n3=max { k | k≤n2 for all 3≤n2≤N },k是小于等于n2的使k=n1=n3的最大数,也就是n2>=n1=n3。那么,当总长度+2被3整除时,n1,n2,n3相等。若有余数,则加到n2上面。使用二维数组,初始化为空格,按u型填充即可。
代码
1 |
|