QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#141390 | #6525. New Houses | cy1999 | WA | 86ms | 5936kb | C++20 | 1.6kb | 2023-08-17 11:26:22 | 2023-08-17 11:26:24 |
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.b-a.a) > (b.b-b.a);
}
int main(){
scanf("%lld",&T);
while(T--){
scanf("%lld%lld",&n,&m);
zizizi=ans=tot1=tot2=0;
// memset(zi,0,sizeof zi);
// memset(lin,0,sizeof lin);
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+1)/2;
sort(zi+1,zi+tot1+1,cmp);
// cout<<m<<" "<<awa<<" "<<ans<<" "<<zizizi<<" "<<tot1<<" "<<tot2<<endl;
if(awa>=tot1) {
if(tot2==1 && lin[1].b+zi[1].b > lin[1].a +zi[1].a){
printf("%lld\n",zizizi+lin[1].b-zi[1].a+zi[1].b);
}
else printf("%lld\n",ans+zizizi);
continue;
}else{
ll kkk=m-tot1;
ll jian=0;
// cout<<"kkk:"<<kkk<<" tot1:"<<tot1<<endl;
for(int i=1;i<=tot1-kkk;i++)jian+=zi[i].b-zi[i].a;
if(tot2==1) 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
//1
//3 5
//10000 1
//2 2000
//3 300
//1
//3 5
//100 1
//2 2000
//3 3000
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 5924kb
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 2 1050
result:
ok 3 number(s): "400 2 1050"
Test #2:
score: -100
Wrong Answer
time: 86ms
memory: 5936kb
input:
100000 6 11 191141536 365120521 799679686 648574232 102602909 467685128 405440859 796808887 384858152 191995380 433392826 195648471 5 13 831367906 510447872 795639287 575551283 811207605 176441088 240156289 946977042 133416463 721098873 5 5 806744021 699586200 630510306 637827160 49223781 641709297 ...
output:
3247545200 4106290713 2653993029 5122532137 5570513606 2031887824 2428482898 1857678917 6815058419 2237593918 6646615756 5702165099 3690874076 5497726904 5513905900 5404435094 4705403467 2411992217 3430587752 5098767681 3921151709 1445672728 2692878616 3833748807 2716183054 974485573 6464787173 8839...
result:
wrong answer 7th numbers differ - expected: '2044500908', found: '2428482898'