先开一个数组标记每一种颜色最小的美味值,再遍历找出这些最小美味值的最大值即可。
考虑到颜色最大可以到 $10^9$,数组无法开到这么大,所以可以使用 map
来存储。
#include<iostream>
#include<cstdio>
#include<unordered_map>
#include<algorithm>
#include<cmath>
using namespace std;
unordered_map<int,int> um;
int n,a,b,ans;
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d%d",&a,&b);
if(!um.count(b)) um[b]=a;
else um[b]=min(um[b],a);
}
for(unordered_map<int,int>::iterator it=um.begin();it!=um.end();it++) ans=max(ans,it->second);
printf("%d",ans);
return 0;
}