天天看點

SGU 484 Kola 模拟題(水

題目連結:點選打開連結

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 105;
char a[N][N];
int main() {
    int n, m;
    while(~scanf("%d%d", &n, &m)) {
 		int si = -1, sj = -1;
	    for(int i = 1; i <= n; i ++ ){
			scanf("%s", a[i] + 1);
			for(int j = 1; j <= m; j ++) {
				if(a[i][j] == 'P') {
					si = i;
					sj = j;
				}
			}
	    }
	    si ++;
	    while(si != -1 && si <= n) {
	    	if(a[si][sj] == '.') si ++;
	    	else if(a[si][sj] == '/') {
	    		if(a[si][sj-1] == '\\') {
	    			si = -1;
					sj = -1;
					break;
	    		} else if(a[si][sj-1] == '/') si ++;
				sj --;
	    	} else {// '\'
	    		if(a[si][sj+1] == '/') {
	    			si = -1;
					sj = -1;
					break;
	    		} else if(a[si][sj+1] == '\\') si ++;
				sj ++;
	    	}
	    //	printf("%d %d\n", si, sj);
	    	if(sj < 1 || sj > m) break;
	    }
	    if(si == -1 || sj < 1 || sj > m) {
	    	puts("-1");
	    } else printf("%d\n", sj);
	}
    
	return 0;
}