简单的排版题,只要求出U型的行与列即可,行应等于(N+2)/3,列应等于N+2-2*行数。
AC代码:
#include<iostream>
#include<vector>
#include<map>
#include<cstdio>
#include<algorithm>
#include<queue>
#include<cstring>
#define inf 10000000
using namespace std;
char a[85][85];
int main()
{
char s[85];
cin>>s;
int han=(strlen(s)+2)/3;
int lie=(strlen(s)+2)-2*han;
for(int i=0;i<han;i++)
{
for(int j=0;j<lie;j++)
{
a[i][j]=' ';
}
}
int num=0;
for(int i=0;i<han;i++)
{
a[i][0]=s[num];
num++;
}
for(int i=1;i<lie;i++)
{
a[han-1][i]=s[num++];
}
for(int i=han-2;i>=0;i--)
{
a[i][lie-1]=s[num++];
}
for(int i=0;i<han;i++)
{
for(int j=0;j<lie;j++)
{
cout<<a[i][j];
}
cout<<endl;
}
}