Problem Description


把一个字符三角形掏空,就能节省材料成本,减轻重量,但关键是为了追求另一种视觉效果。在设计的过程中,需要给出各种花纹的材料和大小尺寸的三角形样板,通过电脑临时做出来,以便看看效果。


 



Input


每行包含一个字符和一个整数n(0<n<41),不同的字符表示不同的花纹,整数n表示等腰三角形的高。显然其底边长为2n-1。如果遇到@字符,则表示所做出来的样板三角形已经够了。


 



Output


每个样板三角形之间应空上一行,三角形的中间为空。显然行末没有多余的空格。


 



Sample Input


X 2 A 7 @


 



Sample Output


X XXX   A A A A A A A A A A A AAAAAAAAAAAAA


 



简单模拟题

#include<set>
#include<map>
#include<ctime>
#include<cmath>
#include<stack>
#include<queue>
#include<bitset>
#include<cstdio>
#include<string>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<functional>
#define rep(i,j,k) for (int i = j; i <= k; i++)
#define per(i,j,k) for (int i = j; i >= k; i--)
#define lson x << 1, l, mid
#define rson x << 1 | 1, mid + 1, r
using namespace std;
typedef long long LL;
const int low(int x) { return x&-x; }
const double eps = 1e-8;
const int INF = 0x7FFFFFFF;
const int mod = 1e9 + 7;
const int N = 2e5 + 10;
const int read()
{
char ch = getchar();
while (ch<'0' || ch>'9') ch = getchar();
int x = ch - '0';
while ((ch = getchar()) >= '0'&&ch <= '9') x = x * 10 + ch - '0';
return x;
}
int T, n, x, t = 0;
char s[2];

int main()
{
while (scanf("%s", s), s[0] != '@')
{
printf("%s", t++ ? "\n" : "");
scanf("%d", &n);
rep(i, 1, n - 1)
{
rep(j, 1, n - i) printf(" ");
printf("%c", s[0]);
rep(j, 1, 2 * i - 3) printf(" ");
if (i > 1) printf("%c", s[0]);
printf("\n");
}
rep(i, 1, 2 * n - 1) printf("%c", s[0]);
putchar(10);
}
return 0;
}