发生了什么?
查看原帖
发生了什么?
602932
NumberTrart楼主2023/1/9 13:36
Wrong Answer.wrong answer On line 1 column 3, read ., expected +.

为什么呢????

#include<iostream>
#include<cstring>
using namespace std;
char ctrl[15][15]={"##+---+",
                   "#/   /|",
                   "+---+ |",
                   "|   | +",
                   "|   |/#",
                   "+---+##"
};
int k,l,m,n;
int a[55][55];
char c[1005][1005];
struct brick
{
    int x,y;
} b[250005];
void draw(brick b);
int nmax,mmax;
int bcnt,xmove=0;
int main()
{
    cin>>n>>m;//n和m互换
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
            scanf("%d",a[i]+j);
    memset(c,'.',sizeof(c));
    //初始x=1,y=1
    //排:i排,x+=2*i-2 , y+=(n-i)*2
    //堆:j堆,y+=4*j
    //层:k层,x-=(k-1)*3
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
            for(int k=1;k<=a[i][j];k++)
            {
                b[++bcnt].x=1+2*i-2-(k-1)*3;
                b[bcnt].y=1+(n-i)*2+4*j;
                xmove=max(xmove,1-b[bcnt].x);
            }
    for(int i=1;i<=bcnt;i++)
    {
        b[i].x+=xmove;
        draw(b[i]);
    }
    for(int i=1;i<=nmax;i++)
    {
        for(int j=1;j<=mmax;j++)
            printf("%c",c[i][j]);
        printf("\n");
    }
    return 0;
}
void draw(brick b)
{
    nmax=max(nmax,b.x+5);
    mmax=max(mmax,b.y+6);
    for(int i=0;i<=5;i++)
        for(int j=0;j<=6;j++)
            if(ctrl[i][j]!='#')
                c[b.x+i][b.y+j]=ctrl[i][j];
}

是画错地方了还是没画?

2023/1/9 13:36
加载中...