📄 ttwo.cpp
字号:
/*
ID: chenkai4
PROG: ttwo
LANG: C++
*/
#include <iostream>
using namespace std;
class point
{
public:
int x,y,direc;
};
bool hash[11][11][11][11][4][4];
bool map[12][12];
point fp,cp;
void go(point* pt)
{
if(pt->direc==1)
if(pt->y==1||map[pt->x][pt->y-1])
pt->direc=2;
else
pt->y--;
else if(pt->direc==2)
if(pt->x==10||map[pt->x+1][pt->y])
pt->direc=3;
else
pt->x++;
else if(pt->direc==3)
if(pt->y==10||map[pt->x][pt->y+1])
pt->direc=0;
else
pt->y++;
else
if(pt->x==1||map[pt->x-1][pt->y])
pt->direc=1;
else
pt->x--;
}
int main()
{
freopen("ttwo.in","r",stdin);
freopen("ttwo.out","w",stdout);
char ch;
for(int a=1;a<=10;a++)
for(int b=1;b<=10;b++)
{
scanf("%c",&ch);
if(ch=='\n')
scanf("%c",&ch);
if(ch=='*')
map[b][a]=true;
else if(ch=='F')
{fp.x = b;fp.y = a;fp.direc = 1;}
else if(ch=='C')
{cp.x = b;cp.y = a;cp.direc = 1;}
}
int answer=0;
hash[fp.x][fp.y][cp.x][cp.y][fp.direc][cp.direc]=true;
while(true)
{
if(fp.x==cp.x&&fp.y==cp.y)
break;
else
{
go(&fp);go(&cp);
if(hash[fp.x][fp.y][cp.x][cp.y][fp.direc][cp.direc])
{printf("0\n");return 0;}
else
{
answer++;
hash[fp.x][fp.y][cp.x][cp.y][fp.direc][cp.direc]=true;
}
}
}
printf("%d\n",answer);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -