记录编号 |
465463 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[NOIP 2008]立体图 |
最终得分 |
100 |
用户昵称 |
Shirry |
是否通过 |
通过 |
代码语言 |
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;
}