记录编号 191241 评测结果 AAAAAAAAA
题目名称 [USACO 2.4]两只塔姆沃斯牛 最终得分 100
用户昵称 Gravatar☜怪盗基德☞ 是否通过 通过
代码语言 C++ 运行时间 0.033 s
提交时间 2015-10-06 19:57:15 内存使用 0.28 MiB
显示代码纯文本
/*
ID: qq654621
PROG: concom
LANG: C++11                  
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cstdlib>
#include<vector>
using namespace std;
char a[11][11];
int x1,x2,y1,y2;int f1=1,f2=1;bool u=0,u2=0;
void m1(int);
void m4(int x)
{
	if(!x){
	u=1;
	if(a[x1][y1-1]=='.')y1--,f1=4;
	else f1=1;
	}
	else{
		u2=1;
		if(a[x2][y2-1]=='.')y2--,f2=4;
		else f2=1;	
	}
}
void m3(int x)
{
	if(!x){
	u=1;
	if(a[x1+1][y1]=='.')x1++,f1=3;
	else f1=4;
	}
	else{
		u2=1;
		if(a[x2+1][y2]=='.')x2++,f2=3;
		else f2=4;
	}
}

void m2(int x)
{
	if(!x){
	u=1;
	if(a[x1][y1+1]=='.')y1++,f1=2;
	else f1=3;
	}
	else
	{
		u2=1;
		if(a[x2][y2+1]=='.')y2++,f2=2;
		else f2=3;
		
	}
}
void m1(int x)
{
	if(!x){
	u=1;
	if(a[x1-1][y1]=='.')x1--,f1=1;
	else f1=2;
	}
	else
	{
		u2=1;
		if(a[x2-1][y2]=='.')x2--,f2=1;
		else f2=2;
	}
}

main()
{
	freopen("ttwo.in","r",stdin);
	freopen("ttwo.out","w",stdout);
	for(int i=1;i<=10;i++)
	for(int j=1;j<=10;j++)
	{
		cin>>a[i][j];
		if(a[i][j]=='C')x1=i,y1=j,a[i][j]='.';
		if(a[i][j]=='F')x2=i,y2=j,a[i][j]='.';
	}
	int ans=0;
	while(1)
	{		
		
		ans++;
		u=0;
		if(f1==1)m1(0);
		if(f1==2&&!u)m2(0);
		if(f1==3&&!u)m3(0);
		if(f1==4&&!u)m4(0);
		u2=0;
		if(f2==1)m1(1);
		if(f2==2&&!u2)m2(1);
		if(f2==3&&!u2)m3(1);
		if(f2==4&&!u2)m4(1);
//		cout<<x1<<" "<<y1<<" "<<x2<<' '<<y2<<endl;
		if(x1==x2&&y1==y2)
		{
			cout<<ans<<endl;
			return 0;
		}
		
		if(ans>1000000){cout<<0;break;
		}
	}
//	system("pause");
}