蒟蒻求助,为什么11分剩下全re
查看原帖
蒟蒻求助,为什么11分剩下全re
540929
kobe_offical楼主2022/5/22 20:39

rt

#include<bits/stdc++.h>
using namespace std;
char a[12][12];
int fx,fy,cx,cy,ans;
int main(){
	for(int i=0;i<=11;i++){
		for(int j=0;j<=0;j++){
			a[i][j]='*';
		}
	}
	for(int i=1;i<=10;i++){
		for(int j=1;j<=10;j++){
			cin>>a[i][j];
			if(a[i][j]=='C'){
				cx=i,cy=j;
			}
			if(a[i][j]=='F'){
				fx=i,fy=j;
			}
		}
	}
	int cw=1,fw=1;
	while(!( cx == fx && cy == fy ) ){
		if(cw==1){
			if(a[cx-1][cy]=='*'){
				cw=2;
			}
			else cx-=1;
		}
		else if(cw==2){
			if(a[cx][cy+1]=='*'){
				cw=3;
			}
			else cy+=1;
		}
		else if(cw==3){
			if(a[cx+1][cy]=='*'){
				cw=4;
			}
			else cx+=1;
		}
		else{
			if(a[cx][cy-1]=='*'){
				cw=1;
			}
			else cy-=1;
		}
		if(fw==1){
			if(a[fx-1][fy]=='*'){
				fw=2;
			}
			else fx-=1;
		}
		else if(fw==2){
			if(a[fx][fy+1]=='*'){
				fw=3	;
			}
			else fy+=1;
		}
		else if(fw==3){
			if(a[fx+1][fy]=='*'){
				fw=4;
			}
			else fx+=1;
		}
		else{
			if(a[fx][fy-1]=='*'){
				fw=1;
			}
			else fy-=1;
		}
		ans++;
		if(ans>=1919810){
			cout<<0<<endl;
			return 0;
		}
	}
	cout<<ans;
	return 0;
}
2022/5/22 20:39
加载中...