QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#472941#6525. New Housesmufeng12#WA 334ms3580kbC++231.9kb2024-07-11 20:28:442024-07-11 20:28:44

Judging History

你现在查看的是最新测评结果

  • [2024-07-11 20:28:44]
  • 评测
  • 测评结果:WA
  • 用时:334ms
  • 内存:3580kb
  • [2024-07-11 20:28:44]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define ull unsigned long long
#define ld long double
#define inf 0x3f3f3f3f
#define all(x) (x).begin(),(x).end()
#define maxint INT32_MAX
#define minint INT32_MIN
#define maxll INT64_MAX
#define minll INT64_MIN
#define mod  998244353
#define nc() (p1==p2 && (p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++)
#pragma GCC optimize(2)
void write(int x);
ll c[120][120];
char *p1,*p2,buf[100000];
int read();
const int N=1e5+10;
int fact[N],infact[N];
struct node{
    ll a,b,c;
    bool operator < (const node& other) const{
        return c<other.c;
    }
};
void solve(){
    ll n,m;
    cin>>n>>m;
    vector<node> v(n+1);
    ll ans=0;
    for(int i=1;i<=n;i++){
        cin>>v[i].a>>v[i].b;
        v[i].c=v[i].a-v[i].b;
        ans+=v[i].a;
    }
    sort(v.begin()+1,v.end());
    ll sum=m-n;
    ll cnt=0;
    //cout<<v[1].a<<' '<<v[1].b<<endl;
    for(int i=1;i<=n;i++){
        if(sum>0){
            if(v[i].c<0){
                sum--;
                ans+=abs(v[i].c);
                cnt++;
            }
        }
    }
    //cout<<cnt<<' '<<ans<<endl;
    if(cnt*2+1==m){
        ans-=v[++cnt].c;
    }
    cout<<ans<<endl;
}

int main() {
    int t=1;
    cin>>t;
    while(t--) solve();
    return 0;
}



void write(int x)
{
    if(x<0)
        putchar('-'),x=-x;
    if(x>9)
        write(x/10);
    putchar(x%10+'0');
    return;
}
int read()
{
    int x=0,f=1;
    char ch=nc();
    while(ch<48||ch>57)
    {
        if(ch=='-')
            f=-1;
        ch=nc();
    }
    while(ch>=48&&ch<=57)
        x=x*10+ch-48,ch=nc();
   	return x*f;
}
// ll ksm(ll a,ll b,ll mod){
//     ll ans=1;
//     a%=mod;
//     while(b>0){
//         if(b&1) ans=ans*a%mod;
//         a=a*a%mod;
//         b>>=1;
//     }
//     return ans;
// }

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3580kb

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: 334ms
memory: 3512kb

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
2072414809
2044500908
1885055191
6815058419
2237593918
6646615756
5638337819
3690874076
5497726904
5513905900
5404435094
4705403467
2411992217
3430587752
5098767681
3921151709
1466967408
2692878616
3833748807
2825163883
974485573
6464787173
8839...

result:

wrong answer 6th numbers differ - expected: '2031887824', found: '2072414809'