UVA 227

这道题虽然思路简单,但是想要A却不简单,因为对格式的要求比较让人头疼

#include <iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string>
#include<string.h>
#include<set>
using namespace std;
int main()
{
  int n,si,sj,flag,visi;
  char m[6][8];
  int num=0;
  while(gets(m[0])){
        num++;
        flag=-1;
        visi=-1;
        if(strcmp(m[0],"Z")==0)
            return 0;
        gets(m[1]);
        gets(m[2]);
        gets(m[3]);
        gets(m[4]);
        for(int i=0;i<5;i++){
        for(int j=0;j<5;j++){
            if(m[i][j]==' '){
                si=i;sj=j;
                 i=5;j=5;
            }
        }
        }


   char s [1000];
    bool exit_koro = false;
  while( !exit_koro&&gets(s)){
    for(int i=0;i<strlen(s);i++){
            if(s[i]=='0'||visi==1){
                exit_koro=true;
                break;
            }

        if(s[i]=='A'){
            if(si-1<0){
            visi=1;
          }
        else{
                m[si][sj]=m[si-1][sj];
                m[si-1][sj]=' ';
                si=si-1;
        }
        }
        if(s[i]=='B'){
                if(si+1>=5){
                   visi=1;

                }
                else{
            m[si][sj]=m[si+1][sj];
            m[si+1][sj]=' ';
            si=si+1;

                }
        }
        if(s[i]=='R'){
            if(sj+1>=5){
             visi=1;
            }
            else{
            m[si][sj]=m[si][sj+1];
            m[si][sj+1]=' ';
            sj=sj+1;
            }
        }
        if(s[i]=='L'){
            if(sj-1<0){
              visi=1;

            }
            else{
            m[si][sj]=m[si][sj-1];
            m[si][sj-1]=' ';
            sj=sj-1;

            }
        }

    }
  }
         if(num>1)
          printf("\n");
        if(visi==-1){
        printf("Puzzle #%d:\n",num);
        for(int i=0;i<5;i++){
           printf ("%c %c %c %c %c\n",m[i][0],m[i][1],m[i][2],m[i][3],m[i][4]);
        }
    }
   else{
         printf("Puzzle #%d:\n",num);
              printf("This puzzle has no final configuration.\n");

    }
    //打出空行!!


  }

   return 0;
     }

 

你可能感兴趣的:(UVA 227)