UVa 227 - Puzzle

来源:互联网 发布:乔治格文2k数据 编辑:程序博客网 时间:2024/05/16 01:48

#include<stdio.h>#include<string.h>int x,y;char puzzle[5][6];int above(void);int below(void);int left(void);int right(void);int main(){int n;int i,j,k;int cnt=0;char c;int flag;c=getchar();while(c!='Z'){while(c=='\n'||c=='0'){c=getchar();}if(c=='Z')break;cnt++;flag=1;for(i=0;i<5;i++){for(j=0;j<6;j++){if(c==' '){x=i;y=j;puzzle[i][j]=' ';}else if((j==4)&&c=='\n'){puzzle[i][j]=' ';x=i;y=j;continue;}else puzzle[i][j]=c;c=getchar();}}while(c!='0'){switch(c){case 'A':flag=above();break;case 'B':flag=below();break;case 'L':flag=left();break;case 'R':flag=right();break;case '\n':break;case 'Z':if(cnt!=1)printf("\n");printf("Puzzle #%d:\n",cnt);if(!flag){printf("This puzzle has no final configuration.\n");}else {for(i=0;i<5;i++){printf("%c",puzzle[i][0]);for(j=1;j<5;j++){printf(" %c",puzzle[i][j]);}printf("\n");}}return 0;default:flag=0;break;}if(!flag)break;c=getchar();}while(c!='0')c=getchar();if(cnt!=1)printf("\n");printf("Puzzle #%d:\n",cnt);if(!flag){printf("This puzzle has no final configuration.\n");}else {for(i=0;i<5;i++){printf("%c",puzzle[i][0]);for(j=1;j<5;j++){printf(" %c",puzzle[i][j]);}printf("\n");}}}return 0;}int above(void){if(!(x>=1&&x<5))return 0;puzzle[x][y]=puzzle[x-1][y];x--;puzzle[x][y]=' ';return 1;}int below(void){if(!(x>=0&&x<4))return 0;puzzle[x][y]=puzzle[x+1][y];x++;puzzle[x][y]=' ';return 1;}int left(void){if(!(y>=1&&x<5))return 0;puzzle[x][y]=puzzle[x][y-1];y--;puzzle[x][y]=' ';return 1;}int right(void){if(!(y>=0&&y<4))return 0;puzzle[x][y]=puzzle[1][y+1];y++;puzzle[x][y]=' ';return 1;}

据说有些连样例都不一致的程序提交上去反而是对的……

本程序结果与样例完全一致

0 0
原创粉丝点击