数据已经改到很大了,一直WA64,不知道为啥,前63个数据都好好的
求助http://codeforces.com/contest/810/problem/B
代码如下
#include
using namespace std;
bool cmp(int a,int b)
{
return a>b;
}
int main()
{
int64_t n,f;long long int i;
int64_t k[100100],l[100100],m[100100];
while(cin>>n>>f)
{int64_t sum=0;
for(i=1;i<=n;i++)
{scanf("%I64d%I64d", &k[i], &l[i]);
sum+=((k[i]<l[i])?k[i]:l[i]);}
int j=0;
for(i=1;i<=n;i++)
{
if(k[i]<l[i])
{
if(2*k[i]<l[i])
m[j++]=k[i];
else
m[j++]=l[i]-k[i];
}
}
sort(m,m+j,cmp);
for(i=0;i<f;i++)
{
sum+=m[i];
}
printf("%I64d\n", sum);
}
}