PTA甲级——1031
1031 Hello World for U
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 |
|
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=ma x { 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 |
|
Sample Output:
1 |
|
思路
实际上就是让我们构成的U尽可能让每一条边都相同,但是我们同时还需要满足n1+n2+n3−2=N这个公式,所以我们可以先计算一下n2=N+2/3, 然后N-n2判断一下这个数 % 2 是否等于0,如果不等于0则n2=n2+1即可。
代码
1 |
|