题目
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 characters, then left to right along the bottom line with 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 ==max { k | k≤ for all 3≤n2≤N } with ++−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
题意理解
给你一个字符串,最后输出成一个u形的结果,那么我们模拟即可
代码
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef unsigned long long ULL ;
typedef pair<int,int> PII;
typedef pair<double,double> PDD;
#define fx first
#define fy second
#define io ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
const int INF=0x3f3f3f3f;
const double DINF=0x7f7f7f7f;
const LL LINF=1e18;
const int N=1e3+10;
const int M=2e2+10;
const int MOD=1e9+7;
char ss[N];
char ans[N][N];
int main(){
scanf("%s",ss);
int len=strlen(ss);
int n1=(len+2)/3;
int n2=len-2*n1+2;
for(int i=0;i<n1-1;i++){
cout<<ss[i];
for(int j=0;j<n2-2;j++)cout<<" ";
cout<<ss[len-i-1]<<"\n";
}
for(int i=0;i<n2;i++){
cout<<ss[n1+i-1];
}
puts("");
return 0;
}