找最大值最小:上周的比赛题nboj上面的
排序扫描:
#include<cstdio>
#include<algorithm>
#include<string.h>
using namespace std;
struct node
{
long long x;
long long y;
}num[100002];
bool cmp(node a,node b)
{
return a.x>b.x;
}
int main(){
int t,n;
scanf("%d",&t);
for(int i=1;i<=t;i++){
scanf("%d",&n);
for(int k=0;k<n;k++)
{
scanf("%lld%lld",&num[k].x,&num[k].y);
}
sort(num,num+n,cmp);
long minx=num[0].x;
int tmp=-1111;
for(int k=1;k<n;k++)
{
if(num[k-1].y>tmp)
tmp=num[k-1].y;
num[k].x+=tmp;
if( num[k].x<minx)
minx=num[k].x;
}
//printf("%d\n",minx);
printf("Case %d: %d\n",i,minx);
}
return 0;
}