Puzzle,ACM/ICPC World Finals 1993,UVa227

来源:互联网 发布:淘宝店铺怎么批量改价 编辑:程序博客网 时间:2024/04/26 13:10
#include<iostream>#include<string>using namespace std;char word[5][6];int A(int &x,int& y){if(y==0){cout<<"This puzzle has no final configuration"<<endl;return 2;}else {swap(word[x][y],word[x][--y]);return 0;}}int B(int &x,int &y){if(y==4){cout<<"This puzzle has no final configuration"<<endl;return 2;}else {swap(word[x][y],word[x][++y]);return 0;}}int L(int &x,int &y){if(x==0){cout<<"This puzzle has no final configuration"<<endl;return 2;}else {swap(word[x][y],word[--x][y]);return 0;}}int R(int &x,int &y){if(x==4){cout<<"This puzzle has no final configuration"<<endl;return 2;}else {swap(word[x][y],word[++x][y]);return 0;}}int main(){for(;;){int count=1;int x,y;gets(word[0]);if(word[0][0]=='Z')break;for(int i=1;i<5;i++)gets(word[i]);for(int i=0;i<5;i++){for(int j=0;j<5;j++){if(word[i][j]==' '){x=i;y=j;}}}string str;cin>>str;int leng=str.length();int real=0;for(int i=0;i<leng;i++){switch(str[i]){case 'A':real=A(x,y);break;case 'B':real=B(x,y);break;case 'L':real=L(x,y);break;case 'R':real=R(x,y);break;default :real=1;}if(real)break;}if(!(real-1)){cout<<"Puzzle #"<<count<<":"<<endl;for(int i=0;i<5;i++){for(int j=0;j<4;j++)cout<<word[j][i]<<" ";cout<<word[5][i];cout<<endl;}count++;cout<<endl;}}}

0 0