解题说明:此题是一道模拟题,用一个数组记录灯的关闭情况,每次只需要对不小于当前数字的灯号进行更新即可。
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include <algorithm>
#include<cstring>
using namespace std;
int main()
{
int n, m,i,j;
int a[101],b[101];
memset(a, -1, sizeof(a));
scanf("%d %d", &n, &m);
for (i = 0; i < m; i++)
{
scanf("%d", &b[i]);
}
for (i = 0; i < m; i++)
{
for (j = b[i]-1; j < n; j++)
{
if (a[j] == -1)
{
a[j] = b[i];
}
else
{
break;
}
}
}
for (i = 0; i < n-1; i++)
{
printf("%d ", a[i]);
}
printf("%d\n", a[n - 1]);
return 0;
}