记录编号 465463 评测结果 AAAAAAAAAA
题目名称 [NOIP 2008]立体图 最终得分 100
用户昵称 GravatarShirry 是否通过 通过
代码语言 C++ 运行时间 0.005 s
提交时间 2017-10-27 08:00:56 内存使用 0.48 MiB
显示代码纯文本
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n,m,maxh,s[100][100];
char ans[400][400];
void work(int a,int b){
	int x=a+5,y=b;
	ans[x][y]  ='+',ans[x][y+1]  ='-',ans[x][y+2]  ='-',ans[x][y+3]  ='-',ans[x][y+4]  ='+';
	ans[x-1][y]='|',ans[x-1][y+1]=' ',ans[x-1][y+2]=' ',ans[x-1][y+3]=' ',ans[x-1][y+4]='|',ans[x-1][y+5]='/';
	ans[x-2][y]='|',ans[x-2][y+1]=' ',ans[x-2][y+2]=' ',ans[x-2][y+3]=' ',ans[x-2][y+4]='|',ans[x-2][y+5]=' ',ans[x-2][y+6]='+';
	ans[x-3][y]='+',ans[x-3][y+1]='-',ans[x-3][y+2]='-',ans[x-3][y+3]='-',ans[x-3][y+4]='+',ans[x-3][y+5]=' ',ans[x-3][y+6]='|';
	                ans[x-4][y+1]='/',ans[x-4][y+2]=' ',ans[x-4][y+3]=' ',ans[x-4][y+4]=' ',ans[x-4][y+5]='/',ans[x-4][y+6]='|';
								      ans[x-5][y+2]='+',ans[x-5][y+3]='-',ans[x-5][y+4]='-',ans[x-5][y+5]='-',ans[x-5][y+6]='+';
}
int main(){
	freopen("drawingu.in","r",stdin);
	freopen("drawingu.out","w",stdout);
	scanf("%d%d",&m,&n);
	int wide=4*n+2*m+1;
	int maxh=0;
	for(int i=0;i<=300;i++)for(int j=0;j<=300;j++)ans[i][j]='.';
	for(int i=1;i<=m;i++)for(int j=1;j<=n;j++)scanf("%d",&s[i][j]),maxh=max(maxh,s[i][j]*3+2*(m-i+1)+1);
	for(int i=1;i<=m;i++)
		for(int j=1;j<=n;j++)
			for(int k=0;k<s[i][j];k++){
				int x=maxh-3*(k+2)-2*(m-i)+1;
				int y=4*j+2*(m-i-1)-1;
				work(x,y);
			}
	for(int i=1;i<=maxh;i++){
		for(int j=1;j<=wide;j++)printf("%c",ans[i][j]);
		printf("\n");
	}
	return 0;
}