玲珑杯 1003 Spoon Devil's Diamond Mine

来源:互联网 发布:知乎武林外传细思极恐 编辑:程序博客网 时间:2024/03/29 16:53

【题目链接】http://www.ifrog.cc/acm/problem/1003

【题意】其实就是开心消消乐,问给你一个消除的步骤,是否是合法的消除。

【解题方法】分类模拟就行了。

【AC代码】超长的模拟

////Created by just_sort 2016/9/25 15:11//Copyright (c) 2016 just_sort.All Rights Reserved//#include <set>#include <map>#include <queue>#include <stack>#include <cmath>#include <cstdio>#include <cstdlib>#include <cstring>#include <iostream>#include <algorithm>using namespace std;char s[10][10];int main(){    while(scanf("%s",s[1]+1)!=EOF)    {        for(int i=2; i<=8; i++) scanf("%s",s[i]+1);        int x1,x2,y1,y2;        scanf("%d%d%d%d",&x1,&y1,&x2,&y2);        if(y1==y2&&x1==x2-1)        {            if(s[x1][y1-1]==s[x1][y1+1]&&s[x1][y1-1]==s[x2][y2])            {                puts("Ok!");            }            else if(s[x2][y2-1]==s[x2][y2+1]&&s[x2][y2-1]==s[x1][y1])            {                puts("Ok!");            }            else if(s[x1-1][y1]==s[x1-2][y1]&&s[x1-1][y1]==s[x2][y2])            {                puts("Ok!");            }            else if(s[x2+1][y1]==s[x2+2][y1]&&s[x2+1][y1]==s[x1][y1])            {                puts("Ok!");            }            else if(s[x1][y1-1]==s[x1][y1-2]&&s[x1][y1-1]==s[x2][y2])            {                puts("Ok!");            }            else if(s[x1][y1+1]==s[x1][y1+2]&&s[x1][y1+1]==s[x2][y2])            {                puts("Ok!");            }            else if(s[x2][y2-1]==s[x2][y2-2]&&s[x2][y2-1]==s[x1][y1])            {                puts("Ok!");            }            else if(s[x2][y2+1]==s[x2][y2+2]&&s[x2][y2+1]==s[x1][y1])            {                puts("Ok!");            }            else            {                puts("Illegal move!");            }        }        else if(y1==y2&&x1-1==x2)        {            if(s[x2][y2-1]==s[x2][y2+1]&&s[x2][y2-1]==s[x1][y1])            {                puts("Ok!");            }            else if(s[x1][y1-1]==s[x1][y1+1]&&s[x1][y1-1]==s[x2][y2])            {                puts("Ok!");            }            else if(s[x2-1][y1]==s[x2-2][y1]&&s[x2-1][y1]==s[x1][y1])            {                puts("Ok!");            }            else if(s[x1+1][y1]==s[x1+2][y1]&&s[x1+1][y1]==s[x2][y2])            {                puts("Ok!");            }            else if(s[x1][y1-1]==s[x1][y1-2]&&s[x1][y1-1]==s[x2][y2])            {                puts("Ok!");            }            else if(s[x1][y1+1]==s[x1][y1+2]&&s[x1][y1+1]==s[x2][y2])            {                puts("Ok!");            }            else if(s[x2][y2-1]==s[x2][y2-2]&&s[x2][y2-1]==s[x1][y1])            {                puts("Ok!");            }            else if(s[x2][y2+1]==s[x2][y2+2]&&s[x2][y2+1]==s[x1][y1])            {                puts("Ok!");            }            else            {                puts("Illegal move!");            }        }        else if(x1==x2&&y2+1==y1)        {            if(s[x2-1][y2]==s[x2+1][y2]&&s[x2-1][y2]==s[x1][y1])            {                puts("Ok!");            }            else if(s[x1-1][y1]==s[x1+1][y1]&&s[x1-1][y1]==s[x2][y2])            {                puts("Ok!");            }            else if(s[x2][y2-1]==s[x2][y2-2]&&s[x2][y2-1]==s[x1][y1])            {                puts("Ok!");            }            else if(s[x1][y1+1]==s[x1][y1+2]&&s[x1][y1+1]==s[x2][y2])            {                puts("Ok!");            }            else if(s[x2-1][y2]==s[x2-2][y2]&&s[x2-1][y2]==s[x1][y1])            {                puts("Ok!");            }            else if(s[x2+1][y2]==s[x2+2][y2]&&s[x2+1][y2]==s[x1][y1])            {                puts("Ok!");            }            else if(s[x1-1][y1]==s[x1-2][y1]&&s[x1-1][y1]==s[x2][y2])            {                puts("Ok!");            }            else if(s[x1+1][y1]==s[x1+2][y1]&&s[x1+1][y1]==s[x2][y2])            {                puts("Ok!");            }            else            {                puts("Illegal move!");            }        }        else if(x1==x2&&y1+1==y2)        {            if(s[x1-1][y1]==s[x1+1][y1]&&s[x1-1][y1]==s[x2][y2])            {                puts("Ok!");            }            else if(s[x2-1][y2]==s[x2+1][y2]&&s[x2-1][y2]==s[x1][y1])            {                puts("Ok!");            }            else if(s[x1][y1-1]==s[x1][y1-2]&&s[x1][y1-1]==s[x2][y2])            {                puts("Ok!");            }            else if(s[x2][y2+1]==s[x2][y2+2]&&s[x2][y2+1]==s[x1][y1])            {                puts("Ok!");            }            else if(s[x2-1][y2]==s[x2-2][y2]&&s[x2-1][y2]==s[x1][y1])            {                puts("Ok!");            }            else if(s[x2+1][y2]==s[x2+2][y2]&&s[x2+1][y2]==s[x1][y1])            {                puts("Ok!");            }            else if(s[x1-1][y1]==s[x1-2][y1]&&s[x1-1][y1]==s[x2][y2])            {                puts("Ok!");            }            else if(s[x1+1][y1]==s[x1+2][y1]&&s[x1+1][y1]==s[x2][y2])            {                puts("Ok!");            }            else            {                puts("Illegal move!");            }        }        else{            puts("Illegal move!");        }    }    return 0;}


0 0
原创粉丝点击