QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#720739#9701. Cattarjen#WA 291ms3604kbC++201.2kb2024-11-07 13:53:242024-11-07 13:53:24

Judging History

This is the latest submission verdict.

  • [2024-11-07 13:53:24]
  • Judged
  • Verdict: WA
  • Time: 291ms
  • Memory: 3604kb
  • [2024-11-07 13:53:24]
  • Submitted

answer

#include <bits/stdc++.h>
using namespace std;
#define int long long 
int solve()
{
    int l,r,s;
    cin>>l>>r>>s;
    vector<int>a;
    while(l<=r&&(l%4!=0)){
        a.push_back(l);l++;
    }
    while(l<=r&&(r%4!=3)){
        a.push_back(r);r--;
    }
    sort(a.begin(),a.end());
    int siz=a.size(),ans=r-l+1;
    vector<vector<int>> dp(siz+1,vector<int>(siz+1,(int)8e18));
    dp[0][0]=0;
    // for(auto it:a)cout<<it<<" ";;cout<<endl;
    auto gmin = [&](int &x,int y){
        if(y<x)x=y;
    };
    for(int i=0;i<siz;i++){
        for(int j=0;j<=siz;j++){
            gmin(dp[i+1][j],dp[i][j]);
            if(j+1<=siz&&i+1<=siz)gmin(dp[i+1][j+1],dp[i][j]+a[i+1-1]);
            if(j+2<=siz&&i+2<=siz)gmin(dp[i+2][j+2],dp[i][j]+(a[i+1-1]^a[i+2-1]));
            if(j+3<=siz&&i+3<=siz)gmin(dp[i+3][j+3],dp[i][j]+(a[i+1-1]^a[i+2-1]^a[i+3-1]));
            // cout<<"i="<<i<<" j="<<j<<" dp="<<dp[i][j]<<endl;
        }
    }
    int mx=0;
    for(int i=0;i<=siz;i++)if(dp[siz][i]<=s)mx=i;
    ans+=mx;
    if(ans==0)return -1;
    return ans;
}
signed main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    int T;cin>>T;while(T--)cout<<solve()<<"\n";
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 291ms
memory: 3544kb

input:

500000
28316250877914575 822981260158260522 1779547116602436425
335408917861648772 578223540024979445 74859962623690079
252509054433933447 760713016476190629 919845426262703496
522842184971407775 585335723211047202 148049062628894322
84324828731963982 354979173822804784 1001312150450968415
269587449...

output:

794665009280345948
242814622163330674
508203962042257183
62493538239639426
270654345090840803
376174809552329776
469882136957817192
42350729279043822
64865315101301174
697234070719324700
223517937810991678
108731400892235542
120906461794646288
463966315863716824
433607439314780607
450247658658833134...

result:

ok 500000 numbers

Test #2:

score: -100
Wrong Answer
time: 258ms
memory: 3604kb

input:

500000
23 999999999999999996 27
576460752303423448 576460752303423490 576460752303423491
999999999999999936 999999999999999964 20
576460752303423534 576460752303423555 116
576460752303423486 576460752303423553 576460752303423547
576460752303423483 576460752303423496 576460752303423492
57646075230342...

output:

999999999999999973
43
28
22
68
13
-1
38
576460752303423488
576460752303423533
12
73
999999999999999879
576460752303423451
22
43
576460752303423492
28
4
10
22
42
999999999999999920
576460752303423502
576460752303423451
36
12246659296139068
999999999999999878
999999999999999881
636067326669398785
5764...

result:

wrong answer 7th numbers differ - expected: '4', found: '-1'