| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
1A..代码。。#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
// 6*7
char cube[][10]=
{
"..+---+",
"./ /|",
"+---+ |",
"| | +",
"| |/.",
"+---+..",
};
int A[50][50];
char art[400][310];
int w,h;
inline void draw_cube(int i,int j,int k){
//draw a cube level h
//start from x,y;
int x,y;
x= i*2, y = j*4+i*2;
x+=(k-1)*3;
for(int i=x;i<x+6;i++)
for(int j=y;j<y+7;j++){
char c = cube[5-i+x][j-y];
if(c=='.') continue;
else art[i][j] = c;
}
}
void print(){
for(int i=h-1;i>=0;i--)
printf("%s\n",art[i]);
}
int main()
{
int n,m;
int kn=0;
h = 0;
scanf("%d%d",&n,&m);
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
scanf("%d",&A[i][j]),h=max(h,6+(A[i][j]-1)*3+2*(n-1-i)),kn=max(kn,A[i][j]);
w = m*4+1 + 2*n;
memset(art,'.',sizeof art);
for(int i=0;i<h;i++) art[i][w] = '\0';
//from bottom to up
//for far to near
for(int k=1;k<=kn;k++)
for(int i=0;i<n;i++)
for(int j=0;j<m;j++){
if(A[i][j]){
A[i][j]--;
draw_cube(n-1-i,j,k);
//print();
//printf("\n");
}
}
print();
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator