QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#647339 | #8354. T2 | songziyan | 0 | 131ms | 87356kb | C++14 | 1.2kb | 2024-10-17 13:28:22 | 2024-10-17 13:28:23 |
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,int flg){for(int j=flg?K/p[i]:K/B;j>=v[i];j--)g[j]=min(g[j],g[j-v[i]]+t[i]);}
void trans(int i,int flg){if(p[i]<=B)add1(i);else add2(i,flg);}
signed main(){
n=read();q=read();K=read();B=sqrt(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();
if(op[i]==1)vis[x[i]]=1;
}
memset(g,0x3f,sizeof(g));g[0]=0;
for(int i=1;i<=n;i++)if(!vis[i])trans(i,1);
for(int i=q;i>=1;i--)
if(op[i]==1)trans(x[i],0);
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: 0ms
memory: 30576kb
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:
81 69 32 40 42 90 32 83 44 50 91 70 53 65 82 50 68 59 86 38 67 70 79 45 50 65 88 43 37 74 29 63 73 7 53 57 75 20 44 50 47 36 73 55 30 42 78 75 47 80 66 87 36 21 73 23 88 37 68 53 57 28 46 59 56 69 28 84 26 41 64 59 35 60 5 42 35 74 63 54 87 73 83 59 39 38 45 48 89 69 62 23 82 84 31 85 56 87 81 80 66...
result:
wrong answer 2476th lines differ - expected: '33', found: '30'
Subtask #2:
score: 0
Wrong Answer
Test #11:
score: 0
Wrong Answer
time: 33ms
memory: 63296kb
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:
1394
result:
wrong answer 1st lines differ - expected: '1771', found: '1394'
Subtask #3:
score: 0
Wrong Answer
Test #21:
score: 0
Wrong Answer
time: 131ms
memory: 41704kb
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:
1778 591 934 692 980 1908 704 1449 1616 466 1670 1478 1322 1341 1033 1661 770 1305 1878 1816 819 949 1685 1624 1718 1311 1445 1365 812 1397 1524 1501 969 164 1891 1847 1393 1415 625 1517 972 1268 1887 892 936 391 1508 901 1257 1279 1083 1291 1337 1894 386 1613 461 568 1698 1716 1686 1060 1544 473 15...
result:
wrong answer 1935th lines differ - expected: '1470', found: '1468'
Subtask #4:
score: 0
Wrong Answer
Test #31:
score: 0
Wrong Answer
time: 24ms
memory: 40168kb
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 679 486 652 481 540 430 356 588 407 521 570 547 403 316 279 617 128 431 492 453 578 427 637 430 569 233 98 439 675 619 641 549 567 299 625 227 365 338 433 306 547 286 628 581 574 627 655 451 663 140 273 665 607 302 323 674 193 612 557 523 517 677 544 570 355 542 390 196 260 430 296 6...
result:
wrong answer 5th lines differ - expected: '706', found: '679'
Subtask #5:
score: 0
Wrong Answer
Test #41:
score: 0
Wrong Answer
time: 111ms
memory: 87356kb
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 742 550 255 1297 781 1061 187 1324 262 448 426 1336 1246 1277 390 964 1243 1371 529 1150 545 1016 713 844 469 570 1323 426 995 1175 1339 1181 655 1291 538 906 572 415 1064 1276 1234 839 747 367 1135 621 363 1363 663 465 402 1146 1327 734 1093 527 1347 929 476 383 1365 344 1062 1363 452 ...
result:
wrong answer 7th lines differ - expected: '1305', found: '1297'