QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#138055 | #1140. Distributing Candies | yahia# | 11 | 2303ms | 26936kb | C++14 | 3.3kb | 2023-08-10 21:35:08 | 2024-07-04 01:35:14 |
Judging History
answer
#include "candies.h"
#pragma GCC optimize ("O3")
#pragma GCC optimize ("unroll-loops")
#pragma GCC optimize("-Ofast")
#include <bits/stdc++.h>
using namespace std;
typedef int in;
#define int long long
#define double long double
#define f first
#define s second
#define pb push_back
#define pp push
#define ceil(x,y) (x/y)+(x%y!=0)*(x*y<0?0:1)
#define floor(x,y) (x/y)+(x%y!=0)*(x*y<0?-1:0)
const int MAAX=1e18;
const int MOD=1e9+7;
const int MAX=1e9;
int tree[1<<20],tree2[1<<20],lazy[1<<20],cc,mnd[200010],mxd[200010],cur[200010];
void upd(int ni,int ns,int ne,int nl,int nr,int val){
if(ns>nr||ne<nl)
return;
if(ns>=nl&&ne<=nr){
lazy[ni]+=val;
tree[ni]+=val;
tree2[ni]+=val;
return;
}
int mid=ns+(ne-ns)/2;
int l=ni*2+1,r=ni*2+2;
if(lazy[ni]){
tree[l]+=lazy[ni];
tree[r]+=lazy[ni];
tree2[l]+=lazy[ni];
tree2[r]+=lazy[ni];
lazy[l]+=lazy[ni];
lazy[r]+=lazy[ni];
lazy[ni]=0;
}
upd(l,ns,mid,nl,nr,val);
upd(r,mid+1,ne,nl,nr,val);
tree[ni]=max(tree[l],tree[r]);
tree2[ni]=min(tree2[l],tree2[r]);
return;
}
int querymx(int ni,int ns,int ne,int idx){
if(ns>idx||ne<idx)
return 0;
if(ns==ne)
return tree[ni];
int mid=ns+(ne-ns)/2;
int l=ni*2+1,r=ni*2+2;
if(lazy[ni]){
tree[l]+=lazy[ni];
tree[r]+=lazy[ni];
tree2[l]+=lazy[ni];
tree2[r]+=lazy[ni];
lazy[l]+=lazy[ni];
lazy[r]+=lazy[ni];
lazy[ni]=0;
}
return max(querymx(l,ns,mid,idx),querymx(r,mid+1,ne,idx));
}
int querymn(int ni,int ns,int ne,int idx){
if(ns>idx||ne<idx)
return 0;
if(ns==ne)
return tree2[ni];
int mid=ns+(ne-ns)/2;
int l=ni*2+1,r=ni*2+2;
if(lazy[ni]){
tree[l]+=lazy[ni];
tree[r]+=lazy[ni];
tree2[l]+=lazy[ni];
tree2[r]+=lazy[ni];
lazy[l]+=lazy[ni];
lazy[r]+=lazy[ni];
lazy[ni]=0;
}
return min(querymn(l,ns,mid,idx),querymn(r,mid+1,ne,idx));
}
vector<in> distribute_candies(vector<in> c, vector<in> l, vector<in> r, vector<in> v) {
int n = c.size(),q=l.size();
vector<in> ans(n);
if(n<=2000&&q<=2000){
for(int i=0;i<q;i++){
for(int j=l[i];j<=r[i];j++){
if(v[i]>0)
ans[j]=min(ans[j]+v[i],c[j]);
else
ans[j]=max(0,ans[j]+v[i]);
}
}
return ans;
}
int mn=0;
for(int i=0;i<q;i++)
mn=min(mn,(int)v[i]);
if(!mn){
for(int i=0;i<q;i++)
upd(0,0,n-1,l[i],r[i],v[i]);
for(int i=0;i<n;i++)
ans[i]=min((int)c[i],querymx(0,0,n-1,i));
return ans;
}
int mn0=l.size(),mnc=l.size();
for(int i=0;i<n;i++){
if(i<1000){
int mx0=0,mxc=0;
for(int j=0;j<l.size();j++){
int x=ans[i];
if(v[j]>0)
ans[i]=min(ans[i]+v[j],c[i]);
else
ans[i]=max(0,ans[i]+v[j]);
if(ans[i]==0)
mx0=j;
if(ans[i]==c[i])
mxc=j;
cur[j]=ans[i]-x;
mnd[j]=min(mnd[j],cur[j]);
mxd[j]=max(mxd[j],cur[j]);
}
mn0=min(mn0,mx0);
mnc=min(mnc,mxc);
}
else{
if(mnc>mn0)
ans[i]=c[i];
for(int j=max(mn0,mnc);j<l.size();j++){
if(v[j]>0)
ans[i]=min(ans[i]+v[j],c[i]);
else
ans[i]=max(0,ans[i]+v[j]);
if(mnd[q-1]-mnd[j]==mxd[q-1]-mxd[j]){
ans[i]+=mnd[q-1]-mnd[j];
ans[i]=min(ans[i],c[i]);
ans[i]=max(ans[i],0);
break;
}
}
}
}
return ans;
}
详细
Subtask #1:
score: 3
Accepted
Test #1:
score: 3
Accepted
time: 0ms
memory: 3712kb
input:
lrts0z0ktpqc670i0etyqgyb45dt1dysq5ap2mzg 8 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 8 0 7 1 0 7 1 0 7 300000000 0 7 994967293 0 7 1 0 7 1000000000 0 7 1000000000 0 7 1000000000
output:
4lpv73iykswp9e3nppi3jw2qggm5dfz29yy9nzpq OK 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000
result:
ok 3 lines
Test #2:
score: 3
Accepted
time: 1ms
memory: 3768kb
input:
lrts0z0ktpqc670i0etyqgyb45dt1dysq5ap2mzg 10 283 43634 101056 10340 6009 5133 30 2 3677888 210 10 1 8 26416 2 7 -51219 2 4 17793 3 7 75426 3 7 22307 1 1 60258 3 7 -29824 0 8 24839 2 8 -60304 0 1 -26411
output:
4lpv73iykswp9e3nppi3jw2qggm5dfz29yy9nzpq OK 0 17223 0 0 0 0 0 0 0 0
result:
ok 3 lines
Test #3:
score: 3
Accepted
time: 1ms
memory: 3704kb
input:
lrts0z0ktpqc670i0etyqgyb45dt1dysq5ap2mzg 10 5895610 429664 3124 17993 758457 101345 5102817 1127952 59 81146 2000 6 7 44356 5 7 77812 1 4 -41353 1 7 -81697 2 5 -26607 4 9 84461 4 7 -44947 1 6 42622 3 5 -99951 0 1 -77687 2 6 52280 5 9 5073 1 9 67601 6 8 -6669 0 6 42368 4 6 22221 1 3 48306 3 6 -23492 ...
output:
4lpv73iykswp9e3nppi3jw2qggm5dfz29yy9nzpq OK 1520966 0 0 0 20922 69708 15240 91107 0 78774
result:
ok 3 lines
Test #4:
score: 3
Accepted
time: 1ms
memory: 3776kb
input:
lrts0z0ktpqc670i0etyqgyb45dt1dysq5ap2mzg 100 1281 616650 26929 344 1231 263 183010 1 1 46 144770 17 1735 9520 7 1 39535 8307 2 5 32940 498570 644480 10107 1645 21 443708 4 28177 2857127 2 1 1350 17506 5 36 1985 42978 24123 73 114 230034 5561405 11263 9754875 4671 44 3 8982 299 452 15 2619 9 7 6259 8...
output:
4lpv73iykswp9e3nppi3jw2qggm5dfz29yy9nzpq OK 0 19101 26929 344 1231 263 14968 1 1 46 40142 17 1735 9520 7 1 31323 8307 2 5 16804 87522 84360 5468 1645 21 93788 4 28177 158016 2 1 1350 17506 5 36 1985 42978 24123 73 114 230034 248401 11263 290026 4671 44 3 8982 299 452 15 2619 9 7 6259 68282 104034 17...
result:
ok 3 lines
Test #5:
score: 3
Accepted
time: 3ms
memory: 4000kb
input:
lrts0z0ktpqc670i0etyqgyb45dt1dysq5ap2mzg 2000 30 43135 3633 8815565 7 10656 4747283 11 1955823 368399 1933641 1354338 121930 8151786 1 2 8 3693091 433 39590 3210647 4211 49 288876 9195 37 129470 1370232 65473 2 10572 49 15282 452 8700630 9946 17 3 39005 1040244 167569 37 2 24552 115 7 117 350655 198...
output:
4lpv73iykswp9e3nppi3jw2qggm5dfz29yy9nzpq OK 30 43135 3633 342743 7 10656 352396 11 498344 368399 425526 434636 121930 524601 1 2 8 427431 433 39590 398492 4211 49 288876 9195 37 129470 481647 65473 2 10572 49 15282 452 865424 9946 17 3 39005 791920 135995 37 2 24552 115 7 117 319081 1988 18 846056 7...
result:
ok 3 lines
Subtask #2:
score: 8
Accepted
Test #6:
score: 8
Accepted
time: 237ms
memory: 25232kb
input:
lrts0z0ktpqc670i0etyqgyb45dt1dysq5ap2mzg 200000 11408901 370732653 37843 28 53693 15782410 103 297546 1112427 170319071 26 1 6172 11614171 431 884673599 1 3 50085 154 57 28200 145886 898969 74758 72 845768 6 69787 11 31012465 55362 253 2363145 47186217 1103 19622 594 7867 1 4299 28130 48 4689582 12 ...
output:
4lpv73iykswp9e3nppi3jw2qggm5dfz29yy9nzpq OK 87153 87153 37843 28 53693 406667 103 297546 766665 971468 26 1 6172 1257294 431 1536484 1 3 50085 154 57 28200 145886 898969 74758 72 845768 6 69787 11 3043755 55362 253 2363145 3459533 1103 19622 594 7867 1 4299 28130 48 4317336 12 431 123 4531465 4806 3...
result:
ok 3 lines
Test #7:
score: 8
Accepted
time: 254ms
memory: 26936kb
input:
lrts0z0ktpqc670i0etyqgyb45dt1dysq5ap2mzg 200000 36 596 2 302 1 22 7381829 295 411 221 267845 2822 635 22 45033 2 3 24 15 1 585 2832326 80 499271 110 192 6185 1752 302907 52967 3 3423576 5373 63 2196 35 113 1209 303 12 89 4572 4 13274 5867 10158 33467 3128 776575 59189 23 11698 637 3 330 1 1 18 3534 ...
output:
4lpv73iykswp9e3nppi3jw2qggm5dfz29yy9nzpq OK 36 295 2 302 1 22 529 295 411 221 771 931 635 22 997 2 3 24 15 1 585 1803 80 1928 110 192 2072 1752 2113 2222 3 2336 2351 63 2196 35 113 1209 303 12 89 3734 4 3736 3736 3931 4234 3128 4408 4562 23 5099 637 3 330 1 1 18 3534 2589 6286 6406 1042 6596 1 6685 ...
result:
ok 3 lines
Test #8:
score: 8
Accepted
time: 236ms
memory: 26724kb
input:
lrts0z0ktpqc670i0etyqgyb45dt1dysq5ap2mzg 200000 423807 103641 5 2833 134 4447875 716134 10 300 7393 6 801 5256389 2604 521049 1670294 35 12249 12 29904 691656 393760 22 409 2 956844 8846653 19 1926 769 36 3577 55 524387 154184 165995 753 3709 29260 41947 89 27779 5115776 1 63 1 374 72 1788 41555 274...
output:
4lpv73iykswp9e3nppi3jw2qggm5dfz29yy9nzpq OK 11 25 5 52 52 53 53 10 66 69 6 86 105 114 123 145 35 155 12 177 177 178 22 229 2 229 239 19 264 280 36 295 55 298 313 328 337 356 375 385 89 388 425 1 63 1 374 72 515 525 525 531 3 5 7 564 573 584 61 631 644 648 8 14 664 316 558 676 686 705 705 736 79 747 ...
result:
ok 3 lines
Subtask #3:
score: 0
Wrong Answer
Test #9:
score: 27
Accepted
time: 1ms
memory: 3860kb
input:
lrts0z0ktpqc670i0etyqgyb45dt1dysq5ap2mzg 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000...
output:
4lpv73iykswp9e3nppi3jw2qggm5dfz29yy9nzpq OK 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
result:
ok 3 lines
Test #10:
score: 0
Wrong Answer
time: 2303ms
memory: 12712kb
input:
lrts0z0ktpqc670i0etyqgyb45dt1dysq5ap2mzg 2000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1...
output:
4lpv73iykswp9e3nppi3jw2qggm5dfz29yy9nzpq OK 966679286 966679286 966679286 966679286 966679286 966679286 966679286 966679286 966679286 966679286 966679286 966679286 966679286 966679286 966679286 966679286 966679286 966679286 966679286 966679286 966679286 966679286 966679286 966679286 966679286 966679...
result:
wrong answer 3rd lines differ - expected: '1049802 936230 884511 204101 4...877 441728121 110945553 1330162', found: '966679286 966679286 966679286 ...6 966679286 966679286 966679286'
Subtask #4:
score: 0
Wrong Answer
Test #16:
score: 29
Accepted
time: 0ms
memory: 3772kb
input:
lrts0z0ktpqc670i0etyqgyb45dt1dysq5ap2mzg 10 11 440 51 41 11 1 3 108 148 14 10 0 9 60 0 9 -9 0 9 -30 0 9 41 0 9 82 0 9 69 0 9 -79 0 9 -39 0 9 72 0 9 41
output:
4lpv73iykswp9e3nppi3jw2qggm5dfz29yy9nzpq OK 11 208 51 41 11 1 3 108 143 14
result:
ok 3 lines
Test #17:
score: 29
Accepted
time: 1ms
memory: 3724kb
input:
lrts0z0ktpqc670i0etyqgyb45dt1dysq5ap2mzg 1000 6 129 1 3 18 414 46 7 33 2 29 3 395 143 120 62 343 102 568 40 49 1 37 7 31 66 12 1 330 4 3 10 3 216 2 375 15 786 1 156 243 411 519 14 13 13 667 2 382 294 1 556 53 2 368 1 32 5 201 13 376 369 91 11 14 5 584 65 3 443 1 989 889 22 8 177 140 7 481 6 371 142 ...
output:
4lpv73iykswp9e3nppi3jw2qggm5dfz29yy9nzpq OK 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...
result:
ok 3 lines
Test #18:
score: 29
Accepted
time: 1670ms
memory: 12640kb
input:
lrts0z0ktpqc670i0etyqgyb45dt1dysq5ap2mzg 2000 4207825 17466917 11 20 10489 1278831 48720 43780703 37223309 28500011 76204785 631 321 1650 263304936 1382 1900 1 225756109 43424483 21143 218062355 851196097 633450 141629084 11494 1 19 12133 5908567 7 26138 1131 152662321 18 787906 312 11463 393 109417...
output:
4lpv73iykswp9e3nppi3jw2qggm5dfz29yy9nzpq OK 780706 1955314 11 20 10489 659178 48720 1955314 1955314 1955314 1955314 631 321 1650 1955314 1382 1900 1 1955314 1955314 21143 1955314 1955314 633450 1955314 11494 1 19 12133 1691591 7 26138 1131 1955314 18 659178 312 11463 393 659178 659178 1180 1955314 5...
result:
ok 3 lines
Test #19:
score: 29
Accepted
time: 650ms
memory: 5496kb
input:
lrts0z0ktpqc670i0etyqgyb45dt1dysq5ap2mzg 200000 401 38224076 293 9 2873526 11 356842329 318925257 728 169 749704686 13312846 8 6106116 4 379784 2 678669 1104 1268657 4579072 4620407 111763 117481111 81224 415449128 69269056 62353747 592 998 1135181 7443857 5706444 6 2 11 87555 3780941 72 8 407 11455...
output:
4lpv73iykswp9e3nppi3jw2qggm5dfz29yy9nzpq OK 0 2136442 0 0 1590745 0 2136442 2136442 0 0 2136442 2136442 0 2136442 0 120361 0 120361 0 120361 2136442 2136442 24468 2136442 0 2136442 2136442 2136442 0 0 120361 2136442 2136442 0 0 0 260 2136442 0 0 0 0 2136442 0 0 0 1210287 2136442 2136442 0 2136442 0 ...
result:
ok 3 lines
Test #20:
score: 0
Wrong Answer
time: 1685ms
memory: 15188kb
input:
lrts0z0ktpqc670i0etyqgyb45dt1dysq5ap2mzg 200000 2 607917 87 7743038 272 19678 1 98 439 30 7898 262 2631381 23073 1026097 3698 6614 40 442324 168 3 43717 2370 1627514 8316081 398 1882901 1 42496 1 20135 29167 4032 6305 3894321 170 598 492 9418417 74322 2401853 52 42 31 145771 1720 63583 100 270 4249 ...
output:
4lpv73iykswp9e3nppi3jw2qggm5dfz29yy9nzpq OK 2 56203 87 56203 148 12145 1 98 179 30 1408 148 56203 15540 56203 179 1408 40 56203 148 3 17751 179 56203 56203 179 56203 1 17751 1 12602 17751 179 1408 56203 148 179 179 56203 44280 56203 52 42 31 56203 179 33541 100 148 179 179 22 56203 56203 31 16 4 140...
result:
wrong answer 3rd lines differ - expected: '2 56203 87 56203 148 12145 1 9...3 6 56 56203 80 116 179 1 1 179', found: '2 56203 87 56203 148 12145 1 9...499 6 56 499 80 116 499 1 1 312'
Subtask #5:
score: 0
Skipped
Dependency #1:
100%
Accepted
Dependency #2:
100%
Accepted
Dependency #3:
0%