wa了第二个点 求大佬救救
查看原帖
wa了第二个点 求大佬救救
436955
神秘代码男楼主2022/3/22 16:40
#include <iostream>
#include <math.h>
using namespace std;
int n,m;
char map[1050][1050];
int main (){
	cin >> n >> m;
	
	for(int i = 1;i <= n;i++){
		scanf("%s",&map[i]);
	}
	int x = 0,y = 0;
	int l = 0 ,r = 0;
	int ans= 0;
	for(int j = 0;j <= m;j++){
		if(map[n][j] == 'J'){
			l = j;				
		}
	}
	ans+=(l-x);
	x = l;
	int t;
	int temp = 0;
	int flag = 0;//0代表双数1表示单数
	for(int i = n-1;i >= 1;i--){
		r = -1;
		l = -1;
			for(int j = m-1;j >= 0;j--){
				if(map[i][j] == 'J'){
					r = j;
					break;
				}
			}
			for(int j = 0;j <= m-1;j++){
				if(map[i][j] == 'J'){
					l = j;
					break;
				}
			}
		if(r == -1 && i == 1){
			break;
		}
		if(r==-1||l ==-1){
			ans ++;
			flag = !flag;
			continue;
		}
		if(!flag){//双数的时候 
			t = r;
			r = l;
			l = t;
			ans=ans+(l-r)+abs(x-l);
			flag = 1;
		}else{
			ans=ans+(r-l)+abs(x-l);
			flag = 0;
		}
		x = r;
		ans++;
	}
	printf("%d",ans); 
	return 0;
}
2022/3/22 16:40
加载中...