郑州大学ZZUOJ-4404-ICPC网络赛

郑州大学ZZUOJ-4404-ICPC网络赛

在这里插入图片描述

题目描述
2019年度,我校参加网络赛取得了优异的成绩:
ICPC网络赛会根据最终学校的排名确定晋级现场赛的学校。ICPC网络赛中,每个学校都会报名若干个队伍参加,每个学校的最终排名是由该校最高名次的队伍决定的。对于同一所学校,除了名次最高的队伍,其余队伍将不计入排名。现在给你一场比赛的榜单,请你帮忙求出某个学校的最终学校排名。特别地,网络赛中也会有个别的退役大佬想再重温下ICPC,他们有个特殊的地方就是队名前会出现“*”(不包括引号),这种打星队伍是不能代表学校参与排名的。
刚刚结束完一场网络赛后,W老师想知道某个学校的排名情况,请你帮忙。

输入
第一行一个整数N(1<N≤10,000),表示参加网络赛的队伍数量
从第二行到第N+1行,每行两个字符串s,t(s,t的长度均小于等于50)。第i+1行的两个字符串分别表示排名第i的学校名称和队伍ID。(注意:学校名称和队伍ID中不会出现空格)
最后一行一个字符串,表示想查询排名的学校名称。若此学校无正式排名,输出-1。
(本题中出现的所有字符串仅由大小写字母,阿拉伯数字以及下划线 “_” 和星号 “*” 组成)

输出
待查询学校的排名

样例输入
8
Tsinghua_University PowerofTwo
Tsinghua_University *RanodmStrign
Peking_University *FaFata
Tsinghua_University BurningComplier
ShanghaiJiaoTong_University sjtu
Zhejiang_University Helianthus
Peking_University pkuteam2
Zhengzhou_University LogWhen
Peking_University

样例输出
4

#include<bits/stdc++.h>                   //万能头文件
using namespace std;
int main()
{
    int n,j;
    set<string> q;                        //定义set容器
    cin>>n;
    string str[10005],name[10005],name1;  //定义学校名,队名,待查询学校名
    for(int i=0;i<n;i++){
    cin>>str[i];cin>>name[i];}            //读入数据
    cin>>name1;
    j=0;
    while(1)
    {
        if(name[j][0]=='*'&&j<n)         //如果检测到'*',跳过
        j++;
        else if(str[j]!=name1&&j<n)     //如果没检测到'*',set容器中读入数据
        {
            q.insert(str[j]);
            j++;
        }
        else break;
    }
    if(j==n)cout<<-1;                 //若此学校无正式排名,输出-1
    else cout<<q.size()+1;            //输出容器内元素个数,排名为元素个数-1
}


  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值