贪心。显然差值越大放后面越不利。
所以只要将存储所需的空间和加上最小差值就行
一开始没动脑子,还用struct存数据,还排个序,结果11和14之后的数据全部TLE
再看代码发现可以简化的很简单;
#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
int main()
{
int n;
scanf("%d", &n);
int sum=0;
int a,b;
int min1=INT_MAX;
for(int i = 1; i <= n; i++)
{
scanf("%d%d", &a, &b);
sum+=b;
if(a-b<min1)
min1=a-b;
}
sum+=min1;
cout<<sum<<endl;
}
//一看就是差值大的先搞事情。。。