UVA227 谜题 Puzzle
听过UVA输出格式有坑的,第一次做输入格式有坑的题,不愧是WF的题呀!
输入注意的细节挺多的,我以为是空格,结果是没有的
纪念一下
#include <bits/stdc++.h> using namespace std; int main() { int kase=0; //ifstream fin("AC.in"); //ofstream cout("AC.out"); while(1) { int cnt=0; string op[10010]; getline(cin,op[cnt++]); if(op[cnt-1][0]=='Z') break; while(1) { getline(cin,op[cnt++]); int leng=op[cnt-1].size(); if(op[cnt-1][leng-1]=='0') break; } cnt--; if(kase!=0) cout<<endl; cout<<"Puzzle #"<<++kase<<":"<<endl; int x=-1,y=-1,st=0; for(int i=0;i<=4;i++) { int leng=op[i].size(); if(leng!=5) { x=i,y=leng,st=1; break; } for(int j=0;j<leng;j++) if(op[i][j]==' ') { x=i; y=j; st=1; } } for(int i=5;i<=cnt;i++) { int leng=op[i].size(); if(st==0) break; for(int j=0;j<leng;j++) { char c=op[i][j]; if(c=='0') break; if( c=='A'||c=='B'||c=='L'||c=='R' ) { int xx,yy; if(c=='A') xx=x-1,yy=y; if(c=='B') xx=x+1,yy=y; if(c=='L') xx=x,yy=y-1; if(c=='R') xx=x,yy=y+1; if(xx>=0&&xx<=4&&yy>=0&&yy<=4) { swap(op[x][y],op[xx][yy]); x=xx,y=yy; } else { st=0; break; } } else { st=0; break; } } } if(st==0) { cout<<"This puzzle has no final configuration."<<endl; } else { for(int i=0;i<=4;i++) { for(int j=0;j<=4;j++) { cout<<op[i][j]; if(j!=4) cout<<" "; } cout<<endl; } } } return 0; }
本文来自博客园,作者:magicat,转载请注明原文链接:https://www.cnblogs.com/magicat/p/16246867.html