2021牛客寒假算法基础集训营4 A.九峰与签到题(签到)

A.九峰与签到题

题目链接:https://ac.nowcoder.com/acm/contest/9984/A

题目描述:

在这里插入图片描述

九峰正在准备一场毒瘤比赛,他是如此毒瘤以致于他想方设法降低通过率,他认为任意时间内通过率大于等于50%的题为签到题,现按照时间顺序给出整场比赛提交记录,请你输出哪些是签到题。

输入描述:

第一行输入两个整数m,n,表示提交记录个数和题目个数(m≤10^5,n≤20)
接下来m行,每行输入一个正整数ai 和一个字符串op,表示题目序号和评测结果(ai≤n,opϵ{‘‘AC",‘‘UNAC"})

输出描述:

从小到大输出签到题的序号,按空格分割。若没有则输出-1。

示例1:

输入
10 2
1 AC
2 AC
1 AC
1 UNAC
1 AC
2 AC
2 UNAC
1 UNAC
2 UNAC
1 UNAC
输出
1 2
备注:
一道题没有任何提交时通过率认为是100%
若没有提交记录则被视为非签到题

解题思路:

签到题计算通过率然后打印出来AC大于等于UNAC(通过率大于等于50%)的题号。
(啊被题目中的任意时间坑了很久emm…语文没学好实惨无比的一批…)

代码如下:

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<string>
using namespace std;
int cnt[10010],vis[10010];
int main(){
    
    
    int m,n,a;
    scanf("%d%d",&m,&n);
    char op[20];
    while(m--){
    
    
        scanf("%d %s",&a,op);
        if(op[0]=='A')cnt[a]++;
        else cnt[a]--;
        if(cnt[a]<0)
            vis[a]=1;
    }
    for(int i=1;i<=n;i++)
        if(!vis[i]){
    
    
            printf("%d ",i);
        }
        return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_45894701/article/details/113865340