P1518 33pts蒟蒻求调悬关
查看原帖
P1518 33pts蒟蒻求调悬关
966143
Chinese_Dragon楼主2023/11/16 16:49
#include<bits/stdc++.h>
using namespace std;
char a[150][150];
int main()
{
    long long x1,y1,x2,y2,sum=0,fx1=1,fx2=1,t;
    for (int i=1;i<=10;++i)
    {
        for (int j=1;j<=10;++j)
        {
            cin>>a[i][j];
        }
    }
    for (int i=1;i<=10;++i)
    {
        for (int j=1;j<=10;++j)
        {
            if (a[i][j]=='F')
            {
                x1=i;
                y1=j;
            }
            if (a[i][j]=='C')
            {
                x2=i;
                y2=j;
            }
        }
    }
    while (x1!=x2||y1!=y2)
    {
        if (sum>=100000)
        {
            cout<<0;
            return 0;
        }
        ++sum;
        t=0;
        if (fx1==1&&t==0)
        {
            if (x1-1<=1)
            {
                fx1=2;
            }
            else
            {
                if (a[x1-1][y1]!='*')
                {
                    --x1;
                }
                else
                {
                    fx1=2;
                }
            }
            t=1;
        }
        if (fx1==2&&t==0)
        {
            if (y1+1>=10)
            {
                fx1=3;
            }
            else
            {
                if (a[x1][y1+1]!='*')
                {
                    ++y1;
                }
                else
                {
                    fx1=3;
                }
            }
            t=1;
        }
        if (fx1==3&&t==0)
        {
            if (x1+1>=10)
            {
                fx1=4;
            }
            else
            {
                if (a[x1+1][y1]!='*')
                {
                    ++x1;
                }
                else
                {
                    fx1=4;
                }
            }
            t=1;
        }
        if (fx1==4&&t==0)
        {
            if (y1-1<=1)
            {
                fx1=1;
            }
            else
            {
                if (a[x1][y1-1]!='*')
                {
                   --y1;
                }
                else
                {
                    fx1=1;
                }
            }
            t=1;
        }
        t=0;
        if (fx2==1&&t==0)
        {
            if (x2-1<=1)
            {
                fx2=2;
            }
            else
            {
                if (a[x2-1][y2]!='*')
                {
                    --x2;
                }
                else
                {
                    fx2=2;
                }
            }
            t=1;
        }
        if (fx2==2&&t==0)
        {
            if (y2+1>=10)
            {
                fx2=3;
            }
            else
            {
                if (a[x2][y2+1]!='*')
                {
                    ++y2;
                }
                else
                {
                    fx2=3;
                }
            }
            t=1;
        }
        if (fx2==3&&t==0)
        {
            if (x2+1>=10)
            {
                fx2=4;
            }
            else
            {
                if (a[x2+1][y2]!='*')
                {
                    ++x2;
                }
                else
                {
                    fx2=4;
                }
            }
            t=1;
        }
        if (fx2==4&&t==0)
        {
            if (y2-1<=1)
            {
                fx2=1;
            }
            else
            {
                if (a[x2][y2-1]!='*')
                {
                    --y2;
                }
                else
                {
                    fx2=1;
                }
            }
            t=1;
        }
    }
    cout<<sum;
    return 0;
}
2023/11/16 16:49
加载中...