站外题求助
  • 板块题目总版
  • 楼主Chtholly_Tree
  • 当前回复56
  • 已保存回复56
  • 发布时间2022/12/15 18:29
  • 上次更新2023/10/24 07:37:07
查看原帖
站外题求助
685602
Chtholly_Tree楼主2022/12/15 18:29

题目描述

博士为了锻炼大家的观察和细心能力,给同学们出了一道题目:现在在地面上摆放一排地雷,但是在地雷中可能混有沼泽,沼泽会有x范围的影响,在它前后的x个地雷,都会因潮湿而无法正常爆炸。沼泽和地雷都有对应的编号,地雷用数字1表示,沼泽用数字0表示,如果是沼泽还会包含一个数字x,表示这个沼泽的影响范围。现在告诉你这些沼泽和地雷的信息,计算出还有多少个地雷可以正常爆炸。

输入格式

输入n+1行:

第一行:一个数字n表示沼泽和炸弹的总个数。

接下来n行:每行若干个数字,若是为一个整数a则表示该位置是炸弹,若是为两个整数b和x,则表示是沼泽,x为沼泽的影响范围,输入的顺序表示对应沼泽和炸弹的位置。(1<=x,n<=1000)

输出格式

输出一个整数即可以正常爆炸的炸弹个数。

My Code:

#include <bits/stdc++.h>
using namespace std;
bool flag[1000010];
int n, tmp, s, ans;
int main() {
	cin >> n;
	for (int i = 1; i <= n; i++) {
		cin >> tmp;
		if (tmp == 0) {
			cin >> s;
			for (int j = max(1, i - s); j <= min(n, i + s); j++) {
				flag[j] = 1;
			}
		}
	}
	for (int i = 1; i <= n; i++) {
		if (flag[i] == 0) ans++;
	}
	cout << ans << "\n";
	return 0;
}
2022/12/15 18:29
加载中...