QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#141327 | #6525. New Houses | cy1999 | WA | 0ms | 5936kb | C++20 | 1.3kb | 2023-08-17 10:46:36 | 2023-08-17 10:46:37 |
Judging History
answer
//#pragma GCC optimize(2)
//#pragma GCC optimize(3)
//#pragma GCC optimize("Ofast","inline")
#include<bits/stdc++.h>
#define fr(a) freopen(a,"r",stdin)
#define fw(a) freopen(a,"w",stdout)
using namespace std;
typedef long long ll;
const int MAXN=5e5+10;
struct node{
ll a,b;
}zi[MAXN],lin[MAXN];
ll T,n,m,x,y;
ll tot1,tot2,ans,zizizi;
bool cmp(node a,node b){
return (a.a-a.b) < (b.a-b.b);
}
int main(){
scanf("%lld",&T);
while(T--){
scanf("%lld%lld",&n,&m);
zizizi=ans=tot1=tot2=0;
for(int i=1;i<=n;i++){
scanf("%lld%lld",&y,&x);
//x独自 y邻居
if(x>y){
zi[++tot1]=(node){x,y};
zizizi+=x;
}
else {
lin[++tot2]=(node){x,y};
ans+=y;
}
}
if(tot2==1){
ans=lin[1].a;
}
m-=tot2;
ll awa=m/2;
// cout<<m<<" "<<awa<<" "<<ans<<" "<<zizizi<<" "<<tot1<<" "<<tot2<<endl;
if(awa>=tot1) {
printf("%lld\n",ans+zizizi);
continue;
}else{
sort(zi+1,zi+tot1+1,cmp);
ll kkk=max(m-tot1,0ll);
ll jian=0;
// cout<<"kkk:"<<kkk<<" tot1:"<<tot1<<endl;
for(int i=1;i<=tot1-kkk;i++)jian+=zi[i].a-zi[i].b;
if(jian) ans=lin[1].b;
printf("%lld\n",ans+zizizi-jian);
}
}
return 0;
}
//3
//4 5
//1 100
//100 1
//100 1
//100 1
//2 2
//1 10
//1 10
//2 3
//100 50
//1 1000
//1
//4 6
//1 10000
//1 1000
//1 100
//2 3
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 0
Wrong Answer
time: 0ms
memory: 5936kb
input:
3 4 5 1 100 100 1 100 1 100 1 2 2 1 10 1 10 2 3 100 50 1 1000
output:
400 102 1050
result:
wrong answer 2nd numbers differ - expected: '2', found: '102'