求助大佬,本地跑没问题答案也一样但提交就全RE
查看原帖
求助大佬,本地跑没问题答案也一样但提交就全RE
585863
YQYjinhuang楼主2022/10/15 21:07
#include<iostream>
#include<string>
using namespace std;
//NOIP2015_P_T2
int main() {
	int n, m;
	cin >> n >> m;
	char area[100][100] = { {'\0'} };
	for (int i = 0; i < n; ++i) {
		for (int j = 0; j < m; ++j) {
			cin >> area[i][j];	//输入雷区信息
		}
	}
	int res[100][100] = { {0} };	//结果数组
	int x_[8] = { 1,1,0,-1,-1,0,1,-1};	//方向数组
	int y_[8] = { 1,0,1,-1,0,-1,-1,1};
	for (int i = 0; i < n; ++i) {
		for (int j = 0; j < m; ++j) {
			if (area[i][j] == '*') {
				res[i][j] = -1;	//如果是雷就标记为-1
			}
			else {
				for (int a = 0; a < 8; ++a) {	//8个方向
					int x = i + x_[a], y = j + y_[a];
					if (x >= 0 && x < n && y >= 0 && y < m) {	//判断是否出界
						if (area[x][y] == '*') {
							res[i][j] += 1;	//雷数加1
						}
					}
				}
			}
		}
	}
	for (int i = 0; i < n; ++i) {	//输出
		for (int j = 0; j < m; ++j) {
			if (res[i][j] == -1) {
				cout << '*';
			}
			else
			{
				cout << res[i][j];
			}
		}
		cout << endl;
	}
	return 1;
}

2022/10/15 21:07
加载中...