Hungry3

梦想到达塔顶的蜗牛

zoj 3429 Cube Simulation 不同层的循环是独立的,好神奇

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=1010;
int x[maxn],y[maxn],z[maxn];
int X,Y,Z;
int main()
{
    char op[20];
    int i,j,k,val,a,b,c;
    int x1,x2,y1,y2,z1,z2;
    int tx,ty,tz;
    while(scanf("%s",op)!=EOF)
    {
        if(op[2]=='L')
        {
            scanf("%d%d%d",&X,&Y,&Z);
            puts("START");
            for(i=0;i<X;i++)x[i]=i;
            for(j=0;j<Y;j++)y[j]=j;
            for(k=0;k<Z;k++)z[k]=k;
        }
        else if(op[2]=='A'&&op[4]=='1')
        {
            scanf("%d%d",&x1,&x2);
            swap(x[x1],x[x2]);
        }
        else if(op[2]=='A'&&op[4]=='2')
        {
            scanf("%d%d",&y1,&y2);
            swap(y[y1],y[y2]);
        }
        else if(op[2]=='A'&&op[4]=='3')
        {
            scanf("%d%d",&z1,&z2);
            swap(z[z1],z[z2]);
        }
        else if(op[2]=='N')
        {
            scanf("%d",&val);
            if(val>X*Y*Z)continue;
            //int tv;
            //[tx][ty][tz]=tx*Y*Z+ty*Z+tz+1;
            val--;
            c=val%Z;
            val/=Z;
            b=val%Y;
            val/=Y;
            a=val;

            for(i=0;i<X;i++)
            if(x[i]==a)
            {
                a=i;
                break;
            }
            for(j=0;j<Y;j++)
            if(y[j]==b)
            {
                b=j;
                break;
            }
            for(k=0;k<Z;k++)
            if(z[k]==c)
            {
                c=k;
                break;
            }
            printf("%d %d %d\n",a,b,c);
        }
        else if(op[2]=='E')
        {
            scanf("%d%d%d",&tx,&ty,&tz);
            val=x[tx]*Y*Z;
            val+=y[ty]*Z+z[tz]+1;
            printf("%d\n",val);
        }
    }
}
View Code

 

posted on 2013-11-15 23:06  Hungry3  阅读(199)  评论(0)    收藏  举报

导航