60pts求助
查看原帖
60pts求助
561638
Tanhaoyue2011楼主2025/7/27 17:24
#include<iostream>

using namespace std;

const int N = 31;
char a[N][N];
int n,m;

bool isWin(char s){
	int op = 0;
	for(int i = 1; i <= n; i++){
		for(int j = 1; j <= m; j++){
			if(a[i][j] == s){
				op++;
				if(op >= 5) return true;
			} else {
				op = 0;
			}
		}
	}
	for(int i = 1; i <= m; i++){
		for(int j = 1; j <= n; j++){
			int op = 0;
			if(a[j][i] == s){
				op++;
				if(op >= 5) return true;
			} else {
				op = 0;
			}
		}
	}
	for(int i = 1; i <= n - 4; i++){
		for(int j = 1; j <= m - 4; j++){
			int op = 0;
			for(int k = 0; k < 5; k++){
				int x = i + k;
				int y = j + k;
				if(x <= n && y <= m && a[x][y] == s) op++;
				if(op >= 5){
					return true;
				}
				else {
					op = 0;
					break;
				} 
			}
		}
	}
	for(int i = 4; i <= n; i++){
		for(int j = 1; j <= m - 4; j++){
			int op = 0;
			for(int k = 0; k < 5; k++){
				int x = i - k;
				int y = j + k;
				if(x >= 1 && y <= m && a[x][y] == s) op++;
				if(op >= 5){
					return true;
				}
				else {
					op = 0;
					break;
				} 
			}
		}
	}
	return false;
}
int W,Z;
int main(){
	cin >> n >> m;
	for(int i = 1; i <= n; i++){
		for(int j = 1; j <= m; j++){
			cin >> a[i][j];
		}
	}
	for(int i = 1; i <= n; i++){
		for(int j = 1; j <= m; j++){
			if(a[i][j] == '$') Z++;
			if(a[i][j] == '*') W++;
		}
	}
	if(isWin('*')) cout << "Pleasing!" << endl;
	else if(isWin('$')) cout << "zylwins!" << endl;
	else{
		if(W == Z) cout << "W" << endl;
		else cout << "Z" << endl;
	}
	return 0;
} 
2025/7/27 17:24
加载中...