UVa227

来源:互联网 发布:手机练钢琴软件 编辑:程序博客网 时间:2024/05/22 03:06

= =史上无敌大坑题,居然最后一行不能换行,不能有尾随空格
这里写图片描述

#pragma warning(disable:4996)#include<cstdio>#include<cstring>#include<string>#include<cmath>#include<vector>#include<algorithm>#include<iostream>#include<time.h>#include<set>#include<sstream>#include<functional>#include<cassert>#include<list>#include<iterator>#include<utility>#include <stdexcept>  #include <sstream>#include <fstream> #include<unordered_map>#include<unordered_set>#include<ctype.h>#include<map>using namespace std;using namespace std::placeholders;char s[5][5];int x, y;int flag;void Move(char tmp){    switch (tmp)    {    case 'A':    {        if (x == 0)        {            flag = 0;            return;        }        char temp;        temp = s[x - 1][y];        s[x - 1][y] = s[x][y];        s[x][y] = temp;        x--;        break;    }    case 'B':    {        if (x == 4)        {            flag = 0;            return;        }        char temp;        temp = s[x + 1][y];        s[x + 1][y] = s[x][y];        s[x][y] = temp;        x++;        break;    }    case 'L':    {        if (y == 0)        {            flag = 0;            return;        }        char temp;        temp = s[x][y - 1];        s[x][y - 1] = s[x][y];        s[x][y] = temp;        y--;        break;    }    case 'R':    {        if (y == 4)        {            flag = 0;            return;        }        char temp;        temp = s[x][y + 1];        s[x][y + 1] = s[x][y];        s[x][y] = temp;        y++;        break;    }    }}int main(){    int cas = 1;    while (scanf("%c", &s[0][0]))    {        if (s[0][0] == '\n')            scanf("%c", &s[0][0]);        if (s[0][0] == 'Z')            return 0;        for (int i = 1; i < 5; i++)            scanf("%c", &s[0][i]);        getchar();        int i, j;        for (i = 1; i < 5; i++)        {            for (j = 0; j < 5; j++)                scanf("%c", &s[i][j]);            if (s[i][4] != '\n')                getchar();        }        for (int i = 0; i < 5; i++)        {            for (int j = 0; j < 5; j++)            {                if (s[i][j] == '\n')                    s[i][j] = ' ';                if (s[i][j] == ' ')                {                    x = i;                    y = j;                }            }        }        char temp;        if (cas != 1)            printf("\n");        cout << "Puzzle #" << cas++ << ":" << endl;        flag = 1;        while ((temp = getchar()) != '0')        {            if (temp == '\n' || temp == '\r')                continue;                Move(temp);        }        if (!flag)        {            printf("This puzzle has no final configuration.\n");        }        else        {            for (int i = 0; i < 5; i++)            {                    printf("%c %c %c %c %c\n", s[i][0], s[i][1], s[i][2], s[i][3],s[i][4]);            }        }    }    return 0;}
0 0
原创粉丝点击