QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#720739 | #9701. Cat | tarjen# | WA | 291ms | 3604kb | C++20 | 1.2kb | 2024-11-07 13:53:24 | 2024-11-07 13:53:24 |
Judging History
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'