POJ:1208 The Blocks Problem

题目链接

POJ:1208 The Blocks Problem_第1张图片

POJ:1208 The Blocks Problem_第2张图片

POJ:1208 The Blocks Problem_第3张图片

题意:

n个盒子,按照规定进行移动,最后输出移动的最终结果

题解:

模拟移动过程,要注意四种移动的不同点

#include 
#include 
#include 

using namespace std;
int all[30][30];
int n;
int find(int x){//找到盒子的现在位置
    for(int i=0;i=0;i--){
        if(all[position][i]==x){
            return i;
        }
        if(all[position][i]!=-1){
            rese(all[position][i]);
            all[position][i]=-1;
        }

    }
    return 0;
}
int main(){
    cin>>n;
        for(int i=0;i>first;
    while(first!="quit"){
        cin>>a>>second>>b;
        if(first=="move"){//move
            if(second=="onto"){//move onto
                int position1=find(a);
                int position2=find(b);
                if(position1!=position2){
                    int tmp=reback(a,position1);
                    all[position1][tmp]=-1;
                    int tmp2=reback(b,position2);
                    tmp2++;
                    all[position2][tmp2]=a;
                }

            }else{//move over
                int position1=find(a);
                int position2=find(b);
                if(position1!=position2){
                    for(int i=0;i=0;i--){
                    if(all[position2][i]==b){
                        time=i;
                        break;
                    }
                    if(all[position2][i]!=-1){
                    rese(all[position2][i]);
                    all[position2][i]=-1;
                    }
                }
                time++;
                bool flag=false;
                for(int i=0;i>first;
        
    }
    print();
    return 0;
}

 

你可能感兴趣的:(poj)