GDUT C.hhgg爱Java

发布于 2021-11-28  38 次阅读


题目概述

思路

因为时间是唯一的,所以我们可以以时间做为下表存储字符串和序号(类似桶排序),从1开始遍历所有元素,若这个元素之后还有和它一样的元素,就直接过,若没有就输出

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath> 
#include<queue>
#include<algorithm>
using namespace std;
const int N=1e3+100; 
int n,v,ord[N];
string a[N],s;
int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;++i)
    {
        cin>>s>>v;
        a[v]=s,ord[v]=i;
    }
    for(int i=1;i<=n;++i)
    {
        bool used=1;
        for(int j=i+1;j<=n;++j)
        {
            if(a[i]==a[j])
            {
                used=0;
                break;
            }
        }
        if(used)
            cout<<ord[i]<<'\n';
    }
    return 0;
}