1 条题解

  • 0
    @ 2026-2-5 15:29:38
    #include <bits/stdc++.h>
    using namespace std;
    int n,m;
    int a[500][500],up=0,r=0;
    char p[500][500];
    char b[10][10]={
    	"..+---+",
    	"./   /|",
    	"+---+ |",
    	"|   | +",
    	"|   |/.",
    	"+---+..",
    };
    int main() {
    	cin>>n>>m;
    	for(int i=0;i<n;i++) {
    		for(int j=0;j<m;j++) {
    			cin>>a[i][j];
    		}
    	}
    	for(int i=0;i<500;i++) {
    		for(int j=0;j<500;j++) {
    			p[i][j]='.';
    		}
    	}
    	up=500,r=0;
    	for(int i=0;i<n;i++) {
    		for(int j=0;j<m;j++) {
    			for(int k=0;k<a[i][j];k++) {
    				int x=499-3*k-2*(n-1-i),y=2*(n-1-i)+4*j;
    				up=min(up,x-5),r=max(r,y+6);
    				for(int a1=0;a1<6;a1++) {
    					for(int b1=0;b1<7;b1++) {
    						if(b[a1][b1]!='.')	p[x-5+a1][y+b1]=b[a1][b1];
    					}
    				}
    			}
    		}
    	}
    	for(int i=up;i<500;i++) {
    		for(int j=0;j<=r;j++) {
    			cout<<p[i][j];
    		}
    		cout<<endl;
    	}
    	return 0;
    }
    

    信息

    ID
    5
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    递交数
    5
    已通过
    4
    上传者