TLE求调
查看原帖
TLE求调
1313080
MJonethree楼主2025/1/17 14:12
#include<bits/stdc++.h>
using namespace std;
char a[15][15];
int headc=0,headf=0,c[5],f[5];//上:0,右:1,下:2,左:3 
int originc[5],originf[5];

void changec(int b1,int b2){
	char x=a[c[1]+b1][c[2]+b2];
	a[c[1]+b1][c[2]+b2]=a[c[1]][c[2]];
	a[c[1]][c[2]]=x;
}

void changef(int b1,int b2){
	char x=a[f[1]+b1][f[2]+b2];
	a[f[1]+b1][f[2]+b2]=a[f[1]][f[2]];
	a[f[1]][f[2]]=x;
}

int main(){
	for(int i=1;i<=10;i++){
		for(int j=1;j<=10;j++){
			cin>>a[i][j];
			if(a[i][j]=='C') c[1]=originc[1]=i,c[2]=originc[2]=j;
			else if(a[i][j]=='F') f[1]=originf[1]=i,f[2]=originf[2]=j;
		}	
	}
	int i=1;
	for(i=1;;i++){
		if(headc==0){
			if(a[c[1]-1][c[2]]=='.'||a[c[1]-1][c[2]]=='F'){
				changec(-1,0);c[1]--;
			}
			else headc++;		
		}
		else if(headc==1){
			if(a[c[1]][c[2]+1]=='.'||a[c[1]][c[2]+1]=='F'){
				changec(0,1);c[2]++;
			}
			else headc++;
		}
		else if(headc==2){
			if(a[c[1]+1][c[2]]=='.'|| a[c[1]+1][c[2]]=='F'){
				changec(1,0);c[1]++;
			}
			else headc++;
		}
		else if(headc==3){
			if(a[c[1]][c[2]-1]=='.'||a[c[1]][c[2]-1]=='F'){
				changec(0,-1);c[2]--;
			}
			else headc=0;
		}
		if(headf==0){
			if(a[f[1]-1][f[2]]=='.'||a[f[1]-1][f[2]]=='C'){
				changef(-1,0);f[1]--;
			}
			else headf++;		
		}
		else if(headf==1){
			if(a[f[1]][f[2]+1]=='.'||a[f[1]][f[2]+1]=='C'){
				changef(0,1);f[2]++;
			}
			else headf++;
		}
		else if(headf==2){
			if(a[f[1]+1][f[2]]=='.'||a[f[1]+1][f[2]]=='C'){
				changef(1,0);f[1]++;
			}
			else headf++;
		}
		else if(headf==3){
			if(a[f[1]][f[2]-1]=='.'||a[f[1]][f[2]-1]=='C'){
				changef(0,-1);f[2]--;
			}
			else headf=0;
		}
		cout<<endl;
		for(int m=1;m<=10;m++){
			for(int n=1;n<=10;n++) cout<<a[m][n];
			cout<<endl;
		}
		if(c[1]==f[1]&&c[2]==f[2]){
			printf("%d",i);
			break;
		} 
		else if((c[1]==originc[1]&&c[2]==originc[2])&&(f[1]==originf[1]&&f[2]==originf[2])&&(i>1)){
			printf("%d",0);
			break;
		} 
		cout<<i;
	}
	return 0;
}
/*
cout<<endl;
for(int m=1;m<=10;m++){
	for(int n=1;n<=10;n++) cout<<a[m][n];
	cout<<endl;
}
*/
2025/1/17 14:12
加载中...