Codeforces Round #532(Div. 2) B.Build a Contest
链接:https://codeforces.com/contest/1100/problem/B
题意:
给n,m。
给m个数,每个数代表一个等级,没给一个将其添加到题目池中,当题目池中有难度(1-n)的题目都存在时,
即可产生一次竞赛。
每给一个数,如果可以出竞赛,输出1,否则输出0。
思路:
一个变量记录有几种题目,一个数组记录每种题目有几个。
能出题时将每种题目的数量减一,减完后为0,则记录种类变量减一。
代码:
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e5+10;
int a[MAXN];
int sum = 0;
int main()
{
int n,m,v;
scanf("%d%d",&n,&m);
for (int i = 0;i<m;i++)
{
scanf("%d",&v);
a[v]++;
if (a[v] == 1)
sum++;
if (sum == n)
{
printf("1");
for (int i = 1;i<=n;i++)
{
a[i]--;
if (a[i] == 0)
sum--;
}
}
else
{
printf("0");
}
}
printf("\n");
return 0;
}
转载于//www.cnblogs.com/YDDDD/p/10266136.html
还没有评论,来说两句吧...