CF415A Mashmokh and Lights 题解

Content

有 \(n\) 个灯,一开始都是亮着的。

有 \(m\) 次操作,每次操作按下开关 \(x\),按下之后所有编号 \(\geqslant x\) 的灯全部熄灭。问你所有的灯第一次被熄灭时的开关编号。

数据范围:\(1\leqslant n,m\leqslant 100,1\leqslant x\leqslant n\)。

Solution

我们可以弄一个数组,每次按下开关 \(x\) 直接将 \(\geqslant x\) 的灯记录下它的答案,注意为了不要重复操作,再开一个数组判断。

Code

#include <cstdio>
using namespace std;

int n, m, ans[107], vis[107];

int main() {
	scanf("%d%d", &n, &m);
	while(m--) {
		int x;
		scanf("%d", &x);
		for(int j = x; j <= n; ++j)
			if(!vis[j]) {
				ans[j] = x;
				vis[j] = 1;
			}
	}
	for(int i = 1; i <= n; ++i)
		printf("%d ", ans[i]);
}
上一篇:如何快速从Github下载文件


下一篇:网络物理同步方案