洛谷 P1518 农民找牛
作者:
quiet_
,
2023-04-06 23:40:23
,
所有人可见
,
阅读 137
#include<bits/stdc++.h>
using namespace std;
const int N = 15;
char g[N][N];
int cnt;
int main()
{
pair<int,int> cow, farmer;
for(int i = 0 ; i < 10 ; i ++)
{
for(int j = 0 ; j < 10 ; j ++)
{
char c;
cin >> c;
g[i][j] = c;
if(c == 'F') farmer = {i , j};
else if(c == 'C') cow = {i , j};
}
}
int dircow = 0, dirfa = 0;
int dx[4] = {-1 ,0 ,1 ,0};
int dy[4] = {0 ,1 ,0 ,-1};
int xf,yf,xc,yc;
xf = farmer.first, yf = farmer.second, xc = cow.first, yc = cow.second;
while(xf != xc || yf != yc)
{
if(g[xf + dx[dirfa]][yf + dy[dirfa]] != '*' && xf + dx[dirfa] >= 0 && xf + dx[dirfa] < 10 && yf + dy[dirfa] >= 0 && yf + dy[dirfa] < 10)
{
xf = xf + dx[dirfa];
yf = yf + dy[dirfa];
}
else
{
dirfa ++;
dirfa = dirfa % 4;
}
if(g[xc + dx[dircow]][yc + dy[dircow]] != '*' && xc + dx[dircow] >= 0 && xc + dx[dircow] < 10 && yc + dy[dircow] >= 0 && yc + dy[dircow] < 10)
{
xc = xc + dx[dircow];
yc = yc + dy[dircow];
}
else
{
dircow ++;
dircow = dircow % 4;
}
cnt ++;
if(cnt > 160000)
{
printf("0");
return 0;
}
}
printf("%d",cnt);
return 0;
}