F.A.Q
Hand In Hand
Online Acmers
Problem Archive
Realtime Judge Status
Authors Ranklist
 
     C/C++/Java Exams     
ACM Steps
Go to Job
Contest LiveCast
ICPC@China
Best Coder beta
VIP | STD Contests
    DIY | Web-DIY beta
Author ID 
Password 
 Register new ID

View Compilation Error

0_0_20613275_11759.cpp:5:25: error: stray '#' in program
     using namespace std;#define maxn 31bool mat[maxn][maxn][maxn];struct point{    short x,y,z,rot,dir,step;    point(){}    point(int a,int b,int c,int d,int e):x(a),y(b),z(c),rot(d),dir(e){}    bool operator ==(const point q)    {        return x == q.x && y == q.y && z == q.z && rot == q.rot && dir == q.dir;    }}ST,EN;int n;char opt[10] = {0,'F','L','R','U','D','B'};point pre[maxn][maxn][maxn][7][7];short step[maxn][maxn][maxn][7][7];int dis[maxn][maxn][maxn][7][7];int LEFT[7][7] = {    0,0,0,0,0,0,0,    0,0,3,5,0,6,2,    0,6,0,1,3,0,4,    0,2,4,0,5,1,0,    0,0,6,2,0,3,5,    0,3,0,4,6,0,1,    0,5,1,0,2,4,0};int RIGHT[7][7] = {    0,0,0,0,0,0,0,    0,0,6,2,0,3,5,    0,3,0,4,6,0,1,    0,5,1,0,2,4,0,    0,0,3,5,0,6,2,    0,6,0,1,3,0,4,    0,2,4,0,5,1,0};int dx[7] = {0,1,0,0,-1,0,0};int dy[7] = {0,0,1,0,0,-1,0};int dz[7] = {0,0,0,1,0,0,-1};int back[7] = { 0,4,5,6,1,2,3 };char record[maxn * maxn * maxn * 10 * 10];bool check(point p){    int x = p.x,y = p.y,z = p.z;    return (1 <= x && x <= n) && (1 <= y && y <= n) && (1 <= z && z <= n) && !mat[x][y][z];}queue <point> Q;void bfs(){    while(!Q.empty())        Q.pop();    int x = ST.x,y = ST.y,z = ST.z,rot = ST.rot,dir = ST.dir;    if(!check(ST))        return ;    dis[x][y][z][rot][dir] = 0;    if(ST == EN)        return ;    pre[x][y][z][rot][dir] = ST;    ST.step = 0;    Q.push(ST);    while(!Q.empty())    {        point now = Q.front();        Q.pop();        for(int i = 1;i <= 6;i++)        {            if(i == 1)            {                rot = now.rot;                dir = now.dir;                x = now.x + dx[now.dir];                y = now.y + dy[now.dir];                z = now.z + dz[now.dir];            }            else            {                if(i == 2)                {                    rot = now.rot;                    dir = LEFT[now.rot][now.dir];                }                else if(i == 3)                {                    rot = now.rot;                    dir = RIGHT[now.rot][now.dir];                }                else if(i == 4)                {                    rot = back[now.dir];                    dir = now.rot;                }                else if(i == 5)                {                    rot = now.dir;                    dir = back[now.rot];                }                else                {                    rot = now.rot;                    dir = back[now.dir];                }                x = now.x;                y = now.y;                z = now.z;            }             if(check(point(x,y,z,rot,dir)) && dis[x][y][z][rot][dir] > now.step + 1)            {                dis[x][y][z][rot][dir] = now.step + 1;                pre[x][y][z][rot][dir] = now;                step[x][y][z][rot][dir] = i;                point haha(x,y,z,rot,dir);                haha.step = now.step + 1;                Q.push(haha);            }        }    }}void come(int temp){    record[temp + 1] = 0;    point rc = EN;    while(!(rc == ST))    {        int x = rc.x,y = rc.y,z = rc.z,rot = rc.rot,dir = rc.dir;        record[temp--] = opt[step[x][y][z][rot][dir]];        rc = pre[x][y][z][rot][dir];    }}void solve(){    scanf("%d",&n);    int a,b,c,d,e;    memset(mat,0,sizeof(mat));    for(int i = 0;i < 2;i++)    {        scanf("%d %d %d %d %d",&a,&b,&c,&d,&e);        if(i == 0)            ST = point(a,b,c,e,d);        else            EN = point(a,b,c,e,d);    }    for(int i = 1;i <= n;i++)    {        for(int j = 1;j <= n;j++)        {            char str[15];            str[0] = 'x';            scanf(" %s",&str[1]);            int l = strlen(str);            bool code[35];            memset(code,0,sizeof(code));            for(int q = l - 1;q >= 1;q--)            {                int fuck = str[q] - '0';                for(int k = 1;k <= 3;k++)                {                    if(fuck & 1)                        code[(l - q - 1) * 3 + k] = 1;                    fuck >>= 1;                }            }            for(int k = n;k >= 1;k --)                mat[j][k][i] = code[k];        }    }    memset(dis,0x7f,sizeof(dis));    memset(pre,0,sizeof(pre));    memset(step,0,sizeof(step));    bfs();    if(dis[EN.x][EN.y][EN.z][EN.rot][EN.dir] == 0x7f7f7f7f)        puts("Sorry, I can't get there.");    else    {        int ans = dis[EN.x][EN.y][EN.z][EN.rot][EN.dir];        come(ans);        printf("%d\n",ans);        puts(&record[1]);    }}int main(){    int t;    scanf("%d",&t);    for(int i = 0;i < t;i++)solve();}
                         ^
0_0_20613275_11759.cpp:5:26: error: 'define' does not name a type
     using namespace std;#define maxn 31bool mat[maxn][maxn][maxn];struct point{    short x,y,z,rot,dir,step;    point(){}    point(int a,int b,int c,int d,int e):x(a),y(b),z(c),rot(d),dir(e){}    bool operator ==(const point q)    {        return x == q.x && y == q.y && z == q.z && rot == q.rot && dir == q.dir;    }}ST,EN;int n;char opt[10] = {0,'F','L','R','U','D','B'};point pre[maxn][maxn][maxn][7][7];short step[maxn][maxn][maxn][7][7];int dis[maxn][maxn][maxn][7][7];int LEFT[7][7] = {    0,0,0,0,0,0,0,    0,0,3,5,0,6,2,    0,6,0,1,3,0,4,    0,2,4,0,5,1,0,    0,0,6,2,0,3,5,    0,3,0,4,6,0,1,    0,5,1,0,2,4,0};int RIGHT[7][7] = {    0,0,0,0,0,0,0,    0,0,6,2,0,3,5,    0,3,0,4,6,0,1,    0,5,1,0,2,4,0,    0,0,3,5,0,6,2,    0,6,0,1,3,0,4,    0,2,4,0,5,1,0};int dx[7] = {0,1,0,0,-1,0,0};int dy[7] = {0,0,1,0,0,-1,0};int dz[7] = {0,0,0,1,0,0,-1};int back[7] = { 0,4,5,6,1,2,3 };char record[maxn * maxn * maxn * 10 * 10];bool check(point p){    int x = p.x,y = p.y,z = p.z;    return (1 <= x && x <= n) && (1 <= y && y <= n) && (1 <= z && z <= n) && !mat[x][y][z];}queue <point> Q;void bfs(){    while(!Q.empty())        Q.pop();    int x = ST.x,y = ST.y,z = ST.z,rot = ST.rot,dir = ST.dir;    if(!check(ST))        return ;    dis[x][y][z][rot][dir] = 0;    if(ST == EN)        return ;    pre[x][y][z][rot][dir] = ST;    ST.step = 0;    Q.push(ST);    while(!Q.empty())    {        point now = Q.front();        Q.pop();        for(int i = 1;i <= 6;i++)        {            if(i == 1)            {                rot = now.rot;                dir = now.dir;                x = now.x + dx[now.dir];                y = now.y + dy[now.dir];                z = now.z + dz[now.dir];            }            else            {                if(i == 2)                {                    rot = now.rot;                    dir = LEFT[now.rot][now.dir];                }                else if(i == 3)                {                    rot = now.rot;                    dir = RIGHT[now.rot][now.dir];                }                else if(i == 4)                {                    rot = back[now.dir];                    dir = now.rot;                }                else if(i == 5)                {                    rot = now.dir;                    dir = back[now.rot];                }                else                {                    rot = now.rot;                    dir = back[now.dir];                }                x = now.x;                y = now.y;                z = now.z;            }             if(check(point(x,y,z,rot,dir)) && dis[x][y][z][rot][dir] > now.step + 1)            {                dis[x][y][z][rot][dir] = now.step + 1;                pre[x][y][z][rot][dir] = now;                step[x][y][z][rot][dir] = i;                point haha(x,y,z,rot,dir);                haha.step = now.step + 1;                Q.push(haha);            }        }    }}void come(int temp){    record[temp + 1] = 0;    point rc = EN;    while(!(rc == ST))    {        int x = rc.x,y = rc.y,z = rc.z,rot = rc.rot,dir = rc.dir;        record[temp--] = opt[step[x][y][z][rot][dir]];        rc = pre[x][y][z][rot][dir];    }}void solve(){    scanf("%d",&n);    int a,b,c,d,e;    memset(mat,0,sizeof(mat));    for(int i = 0;i < 2;i++)    {        scanf("%d %d %d %d %d",&a,&b,&c,&d,&e);        if(i == 0)            ST = point(a,b,c,e,d);        else            EN = point(a,b,c,e,d);    }    for(int i = 1;i <= n;i++)    {        for(int j = 1;j <= n;j++)        {            char str[15];            str[0] = 'x';            scanf(" %s",&str[1]);            int l = strlen(str);            bool code[35];            memset(code,0,sizeof(code));            for(int q = l - 1;q >= 1;q--)            {                int fuck = str[q] - '0';                for(int k = 1;k <= 3;k++)                {                    if(fuck & 1)                        code[(l - q - 1) * 3 + k] = 1;                    fuck >>= 1;                }            }            for(int k = n;k >= 1;k --)                mat[j][k][i] = code[k];        }    }    memset(dis,0x7f,sizeof(dis));    memset(pre,0,sizeof(pre));    memset(step,0,sizeof(step));    bfs();    if(dis[EN.x][EN.y][EN.z][EN.rot][EN.dir] == 0x7f7f7f7f)        puts("Sorry, I can't get there.");    else    {        int ans = dis[EN.x][EN.y][EN.z][EN.rot][EN.dir];        come(ans);        printf("%d\n",ans);        puts(&record[1]);    }}int main(){    int t;    scanf("%d",&t);    for(int i = 0;i < t;i++)solve();}
                          ^
0_0_20613275_11759.cpp:5:384: error: 'maxn' was not declared in this scope
     using namespace std;#define maxn 31bool mat[maxn][maxn][maxn];struct point{    short x,y,z,rot,dir,step;    point(){}    point(int a,int b,int c,int d,int e):x(a),y(b),z(c),rot(d),dir(e){}    bool operator ==(const point q)    {        return x == q.x && y == q.y && z == q.z && rot == q.rot && dir == q.dir;    }}ST,EN;int n;char opt[10] = {0,'F','L','R','U','D','B'};point pre[maxn][maxn][maxn][7][7];short step[maxn][maxn][maxn][7][7];int dis[maxn][maxn][maxn][7][7];int LEFT[7][7] = {    0,0,0,0,0,0,0,    0,0,3,5,0,6,2,    0,6,0,1,3,0,4,    0,2,4,0,5,1,0,    0,0,6,2,0,3,5,    0,3,0,4,6,0,1,    0,5,1,0,2,4,0};int RIGHT[7][7] = {    0,0,0,0,0,0,0,    0,0,6,2,0,3,5,    0,3,0,4,6,0,1,    0,5,1,0,2,4,0,    0,0,3,5,0,6,2,    0,6,0,1,3,0,4,    0,2,4,0,5,1,0};int dx[7] = {0,1,0,0,-1,0,0};int dy[7] = {0,0,1,0,0,-1,0};int dz[7] = {0,0,0,1,0,0,-1};int back[7] = { 0,4,5,6,1,2,3 };char record[maxn * maxn * maxn * 10 * 10];bool check(point p){    int x = p.x,y = p.y,z = p.z;   


Hangzhou Dianzi University Online Judge 3.0
Copyright © 2005-2024 HDU ACM Team. All Rights Reserved.
Designer & Developer : Wang Rongtao LinLe GaoJie GanLu
Total 0.000000(s) query 1, Server time : 2024-12-02 14:03:05, Gzip enabled