现在的位置: 首页 > 综合 > 正文

Noj-1388(最安全的地方)

2013年05月11日 ⁄ 综合 ⁄ 共 811字 ⁄ 字号 评论关闭

作为一个战地记者,你现在要去前线报道,阵地是n乘m的,每一个坐标都有一个士兵在埋伏,现在你给每一个士兵都打了个分数,代表了在他们附近的安全程度。总的安全程度指的是以你为中心的九宫格的安全程度总和,包括在你位置的士兵。总和囊括的是实际存在的九宫格,就是说假设你在边界,在边界外的九宫格就一点也不安全了,即为零。你的任务就是找一个最安全的地点。如果有多个答案,应该先输出行号最小的一个,若同一行还有多列答案,输出列最小的一个。抱歉,本题在添加前没有经过确认,影响了大家的做题,在此表示衷心的歉意。另请注意,最安全比较的是总和而不是比较均值。

我就崩溃了,又没有读好题目,,,诶诶诶,,

以后一定要读准确题目,要不写也写不对!!!气死人..

诶,诶诶

贴出代码:

#include <stdio.h>
#include <string.h>
#include <iostream>
#include <string>

using namespace std;

int n, m;

long long int a[205][205];



int main()
{
	while (scanf("%d%d", &n, &m) != EOF)
	{
		memset(a, 0, sizeof(a));
		for (int i = 1; i <= n; i++)
		{
			for (int j = 1; j <= m; j++)
			{
				scanf("%lld", &a[i][j]);
			}
		}
		long long int Max = -1;
		int x, y;
		int z;
		int cnt;
		for (int i = 1; i <= n; i++)
		{
			for (int j = 1; j <= m; j++)
			{
				cnt = 0;
				long long int ans = 0;
				for (int k = i - 1; k <= i + 1; k++)
				{
					for (int q = j - 1; q <= j + 1; q++)
					{
						ans += a[k][q];
					}
				}
				if (Max < ans)
				{	
					Max = ans;
					x = i;
					y = j;
				}
			}
		}
		printf("%d %d %lld\n", x, y, Max / 9);
	}
	return 0;
}
【上篇】
【下篇】

抱歉!评论已关闭.