QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#647194 | #8354. T2 | songziyan | 0 | 1180ms | 91580kb | C++14 | 1.2kb | 2024-10-17 12:35:20 | 2024-10-17 12:35:20 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
#define int long long
char buf[1<<22],*p1,*p2;
#define getchar() (p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<22,stdin),p1==p2)?0:*p1++)
inline int read(){
int x=0,f=1;char ch=getchar();
while(!isdigit(ch))f=(ch=='-')?-1:1,ch=getchar();
while(isdigit(ch))x=(x<<3)+(x<<1)+(ch^48),ch=getchar();
return x*f;
}
const int N=2e6+5;
int n,K,q,B,op[5005],x[5005],ans[5005],f[N],g[N],p[N],v[N],t[N],vis[N];
void add1(int i){for(int j=K;j>=t[i];j--)f[j]=max(f[j],f[j-t[i]]+v[i]);}
void add2(int i){for(int j=K/p[i];j>=v[i];j--)if(g[j-v[i]]+t[i]<=K)g[j]=min(g[j],g[j-v[i]]+t[i]);}
signed main(){
n=read();q=read();K=read();B=sqrt(n+q);
for(int i=1;i<=n;i++)p[i]=read(),v[i]=read(),t[i]=p[i]*v[i];
for(int i=1;i<=q;i++)op[i]=read(),x[i]=read(),vis[x[i]]=op[i]==1;
memset(f,-0x3f,sizeof(f));f[0]=0;
memset(g,0x3f,sizeof(g));g[0]=0;
for(int i=1;i<=n;i++)if(!vis[i]){if(p[i]<=B)add1(i);else add2(i);}
for(int i=q;i>=1;i--)
if(op[i]==1){if(p[x[i]]<=B)add1(x[i]);else add2(x[i]);}
else{int &res=ans[i];for(int j=x[i]/B;j>=0;j--)if(x[i]>=g[j])res=max(res,f[x[i]-g[j]]+j);}
for(int i=1;i<=q;i++)if(op[i]==2)printf("%lld\n",ans[i]);
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 0
Wrong Answer
Test #1:
score: 0
Wrong Answer
time: 3ms
memory: 41584kb
input:
3205 5000 5000 1 1 2 1 3 1 7 1 8 1 9 1 10 1 11 1 12 2 13 1 14 2 16 1 17 2 20 3 22 1 24 1 26 2 27 1 30 1 32 2 33 1 34 1 41 1 44 2 49 2 51 1 54 2 58 2 61 2 65 2 66 1 68 2 70 1 71 2 72 2 74 8 75 3 76 5 77 1 78 7 79 5 80 5 81 1 82 2 84 1 86 6 87 6 88 3 89 9 90 5 91 1 92 2 93 3 95 7 96 2 97 2 98 8 99 8 1...
output:
85 73 34 43 46 95 34 87 47 54 96 74 57 70 86 54 72 63 91 41 71 74 83 49 54 69 92 47 40 79 32 67 77 7 57 61 79 21 47 54 50 39 77 59 32 46 82 79 50 84 70 91 39 23 78 25 92 41 72 57 61 29 50 63 60 73 30 89 28 45 68 63 38 64 6 45 38 78 67 58 91 77 88 63 42 41 49 52 94 73 66 25 86 88 33 89 60 92 85 84 70...
result:
wrong answer 1st lines differ - expected: '81', found: '85'
Subtask #2:
score: 0
Wrong Answer
Test #11:
score: 0
Wrong Answer
time: 1180ms
memory: 77952kb
input:
1277351 1 2000000 2 2 5 1 7 3 8 4 10 1 12 1 15 2 16 1 18 1 22 1 25 1 28 3 29 1 32 1 35 1 36 1 38 2 40 1 41 2 42 1 43 2 44 2 45 1 48 1 49 1 50 2 54 2 55 2 56 1 58 2 59 2 60 2 62 1 66 1 68 3 69 1 70 3 72 2 76 1 78 1 79 2 81 2 82 3 84 2 85 1 86 2 89 1 90 2 91 2 92 1 93 1 96 3 98 3 99 2 100 3 101 1 102 ...
output:
1770
result:
wrong answer 1st lines differ - expected: '1771', found: '1770'
Subtask #3:
score: 0
Wrong Answer
Test #21:
score: 0
Wrong Answer
time: 122ms
memory: 56436kb
input:
5000 5000 2000000 1 1 2 1 3 1 4 1 6 1 7 1 8 1 9 1 10 1 11 1 14 1 15 3 17 2 18 2 21 1 22 1 24 1 25 3 27 1 28 2 29 1 30 1 31 1 32 1 33 1 34 1 35 1 37 1 38 1 39 1 40 2 41 2 43 1 45 1 47 1 49 1 50 1 51 1 54 1 55 1 56 1 61 1 62 2 64 1 65 1 67 2 68 2 70 2 72 2 74 1 76 3 79 2 82 4 83 2 84 1 88 1 91 1 92 1 ...
output:
1674 590 932 686 980 0 695 1448 1594 461 1633 1470 1321 1335 1024 1624 768 1303 0 1711 811 949 1652 1602 1673 1308 1429 1350 811 1382 1518 1483 966 163 0 0 1389 1400 619 1514 960 1254 0 887 925 390 1505 895 1256 1268 1075 1289 1331 0 384 1592 457 565 1645 1651 0 1047 1527 468 1564 1367 1599 0 693 64...
result:
wrong answer 1st lines differ - expected: '1778', found: '1674'
Subtask #4:
score: 0
Wrong Answer
Test #31:
score: 0
Wrong Answer
time: 50ms
memory: 52156kb
input:
191299 5000 300000 1 1 5 1 6 2 7 1 8 1 10 1 11 2 12 2 17 1 18 1 19 1 20 1 21 1 22 2 25 1 28 1 29 2 30 1 31 2 34 1 36 1 37 1 38 1 40 1 42 1 43 1 44 1 45 1 47 2 48 1 51 1 53 3 54 2 56 2 58 2 59 2 61 2 63 4 64 2 67 1 68 2 69 2 70 1 72 1 76 1 77 1 78 1 80 2 83 1 84 1 87 1 88 1 89 1 91 2 93 1 95 1 96 1 9...
output:
221 531 204 303 706 486 662 480 540 430 356 588 406 521 570 546 403 316 279 618 128 431 492 453 578 426 642 430 569 233 97 438 698 621 646 549 567 299 626 227 365 338 432 305 546 286 631 580 574 629 667 450 679 140 273 682 607 302 323 696 193 613 557 523 516 702 544 570 355 541 389 196 260 429 296 6...
result:
wrong answer 7th lines differ - expected: '663', found: '662'
Subtask #5:
score: 0
Wrong Answer
Test #41:
score: 0
Wrong Answer
time: 491ms
memory: 91580kb
input:
1278949 5000 2000000 4 1 9 1 12 1 13 1 15 2 20 1 21 2 26 1 36 1 39 2 43 1 46 2 59 1 64 1 66 1 71 1 73 1 75 1 78 2 83 1 87 1 89 1 92 1 97 1 103 1 104 1 108 1 111 1 113 1 114 1 117 2 118 1 130 1 137 1 140 1 151 1 152 1 155 1 158 2 163 1 164 1 165 1 168 1 172 1 173 1 183 1 185 1 186 1 192 1 208 1 210 2...
output:
272 361 1207 741 550 255 1304 780 1061 187 1353 262 447 426 1378 1246 1277 390 964 1243 1483 529 1150 544 1015 713 843 468 570 1353 426 994 1174 1389 1180 655 1294 538 906 572 415 1064 1276 1234 839 746 367 1134 621 363 1457 663 465 401 1145 1358 734 1092 526 1411 929 475 382 1463 344 1061 1455 451 ...
result:
wrong answer 4th lines differ - expected: '742', found: '741'