QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#647058 | #8354. T2 | songziyan | 0 | 100ms | 86576kb | C++14 | 1.2kb | 2024-10-17 11:22:41 | 2024-10-17 11:22:42 |
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],f[N],g[N],p[N],v[N],t[N],vis[N],ans[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--)g[j]=min(g[j],g[j-v[i]]+t[i]);}
signed main(){
n=read();q=read();K=read();B=sqrt(q*K/(n+K));B=max(B,1ll);
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(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: 0ms
memory: 30484kb
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 35 44 46 95 35 87 47 54 96 74 57 70 86 54 72 63 91 42 71 74 84 49 54 69 92 47 40 79 32 67 77 7 57 61 79 21 47 54 50 39 78 59 33 46 82 79 51 84 70 91 39 23 78 25 92 41 72 57 61 29 50 63 60 73 30 89 28 45 68 63 38 65 6 46 38 79 67 58 91 77 88 63 43 41 49 52 94 73 66 25 86 88 34 89 61 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: 39ms
memory: 65340kb
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: 100ms
memory: 57540kb
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:
1706 591 934 692 980 1724 704 1449 1599 466 1640 1478 1322 1341 1033 1635 770 1305 1714 1714 819 949 1649 1607 1674 1311 1444 1365 812 1397 1522 1500 969 164 1708 1708 1393 1415 625 1514 972 1268 1704 892 936 391 1507 901 1257 1279 1083 1291 1337 1704 386 1596 461 568 1657 1666 1647 1060 1538 473 15...
result:
wrong answer 1st lines differ - expected: '1778', found: '1706'
Subtask #4:
score: 0
Wrong Answer
Test #31:
score: 0
Wrong Answer
time: 11ms
memory: 39620kb
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 571 486 571 481 540 430 356 571 407 521 570 547 403 316 279 571 128 431 492 453 571 427 571 430 569 233 98 439 571 571 571 549 567 299 571 227 365 338 433 306 547 286 571 571 571 571 571 451 571 140 273 571 571 302 323 571 193 571 557 523 517 571 544 570 355 542 390 196 260 430 296 5...
result:
wrong answer 5th lines differ - expected: '706', found: '571'
Subtask #5:
score: 0
Wrong Answer
Test #41:
score: 0
Wrong Answer
time: 100ms
memory: 86576kb
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 1262 781 1061 187 1262 262 448 426 1262 1246 1262 390 964 1243 1262 529 1150 545 1016 713 844 469 570 1262 426 995 1175 1262 1181 655 1262 538 906 572 415 1064 1262 1234 839 747 367 1135 621 363 1262 663 465 402 1146 1262 734 1093 527 1262 929 476 383 1262 344 1062 1262 452 ...
result:
wrong answer 7th lines differ - expected: '1305', found: '1262'