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:
h d
e l
l r
lowo
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.
输入描述:
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.
输出描述:
For each test case, print the input string in the shape of U as specified in the description.
输入样例:
helloworld!
输出样例:
h !
e d
l l
lowor
本人AC代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
string s;
getline(cin,s);
int n=s.size();
int a=(n+2)/3;
int b=n-2*a;
for(int i=0;i<a-1;i++){
cout<<s[i];
for(int j=0;j<b;j++){
cout<<" ";
}
cout<<s[n-1-i];
cout<<endl;
}
for(int i=a-1;i<=n-a;i++){
cout<<s[i];
}
return 0;
}