传送门· 服了,咋有问题啊?m ?
#include<bits/stdc++.h>
using namespace std;
struct sb{
int xd=1,x,y;
};
sb ren;
struct bs{
int xd=1,x,y;
};
bs niu;
int n[12][12],p[12][12];
int main(){
char dt[12][12];
bool pd[12][12]={0};
int s=0;
for(int i=1;i<=12;i++){
for(int i=1;i<=12;i++){
dt[1][i]='*';
dt[12][i]='*';
dt[i][1]='*';
dt[i][12]='*';
}
}
for(int i=2;i<=11;i++){
for(int j=2;j<=11;j++){
cin>>dt[i][j];
}
}
for(int i=1;i<=12;i++){
for(int j=1;j<=12;j++){
if(dt[i][j]=='*'){
pd[i][j]==1;
}
if(dt[i][j]=='C'){
niu.x=i;
niu.y=j;
}
if(dt[i][j]=='F'){
ren.x=i;
ren.y=j;
}
}
}
while(niu.x!=ren.x&&niu.y!=ren.y){
switch(niu.xd){
case 1:niu.y++;if(pd[niu.x][niu.y]==1){
niu.xd++;
}break;
case 2:niu.x++;if(pd[niu.x][niu.y]==1){
niu.xd++;
}break;
case 3:niu.y--;if(pd[niu.x][niu.y]==1){
niu.xd++;
}break;
case 4:niu.x--;if(pd[niu.x][niu.y]==1){
niu.xd=1;
}break;
}
switch(ren.xd){
case 1:ren.y++;if(pd[niu.x][niu.y]==1){
ren.xd++;
}break;
case 2:ren.x++;if(pd[ren.x][ren.y]==1){
ren.xd++;
}break;
case 3:ren.y--;if(pd[ren.x][ren.y]==1){
ren.xd++;
}break;
case 4:ren.x--;if(pd[ren.x][ren.y]==1){
ren.xd=1;
}break;
}
s++;
}
cout<<s;
return 0;
}