QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#953116 | #10150. 推箱子 | UZING | 100 ✓ | 1199ms | 32272kb | C++14 | 2.9kb | 2025-03-27 16:14:04 | 2025-03-27 16:14:05 |
Judging History
answer
#include<bits/stdc++.h>
#define ll long long
#define pii pair<ll,ll>
using namespace std;
inline ll max(ll x,ll y)
{
return x>y?x:y;
}
inline ll min(ll x,ll y)
{
return x<y?x:y;
}
#define getchar()(p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++)
char buf[1<<21],*p1=buf,*p2=buf;
inline ll read()
{
char c=getchar();ll x=0;bool f=0;
for(;!isdigit(c);c=getchar())f^=!(c^45);
for(;isdigit(c);c=getchar())x=(x<<1)+(x<<3)+(c^48);
if(f)x=-x;return x;
}
const ll N=2e5+10;
ll c,t,n;
struct tree
{
bool la;
ll s,x;
}f[N<<2];
struct node
{
ll a,b,t;
}a[N];
pii q[N];
void build(int k,int l,int r)
{
if(l==r)return f[k].s=f[k].x=a[l].a,void();
int mid=(l+r)/2;
build(k*2,l,mid);
build(k*2+1,mid+1,r);
f[k].s=f[k*2].s+f[k*2+1].s;
}
void pushdown(int k,int l,int r,int mid)
{
if(f[k].la!=1)return ;
ll x=f[k].x;
int ls=k*2,rs=k*2+1;
f[ls]={1,(x+x+(mid-l))*(mid-l+1)/2,x};
f[rs]={1,(x+(mid-l+1)+x+(r-l))*(r-mid)/2,x+(mid-l+1)};
f[k].la=2;
}
ll ask(int k,int l,int r,int x,int y)
{
if(x<=l&&r<=y)return f[k].s;
if(f[k].la)return (f[k].x+x-l+f[k].x+y-l)*(y-x+1)/2;
ll mid=(l+r)/2,ans=0;
pushdown(k,l,r,mid);
if(x<=mid)ans+=ask(k*2,l,mid,x,min(y,mid));
if(y>mid)ans+=ask(k*2+1,mid+1,r,max(x,mid+1),y);
return ans;
}
void change(int k,int l,int r,int x,int y,ll z)
{
if(l>y||r<x)return ;
if(x<=l&&r<=y)
{
f[k]={1,(z+z+(r-l))*(r-l+1)/2,z};
return ;
}
ll mid=(l+r)/2;
pushdown(k,l,r,mid),f[k].la=0;
if(x<=mid)change(k*2,l,mid,x,y,z);
if(y>mid)change(k*2+1,mid+1,r,max(x,mid+1),y,x<=mid?z+(mid-x+1):z);
f[k].s=f[k*2].s+f[k*2+1].s;
}
bool check()
{
build(1,1,n);
for(int i=1;i<=n;i++)
q[i]={a[i].t,i};
sort(q+1,q+1+n);
ll now=0;
for(int i=1;i<=n;i++)
{
ll t=q[i].first,id=q[i].second;
a[id].a=ask(1,1,n,id,id);
ll x=a[id].a,y=a[id].b;
if(x==y)
{
if(now>t)return false;
else continue;
}
if(x>y)
{
ll l=0,r=id;
if(c==19||c==20)l=id-1;
else
while(l+1<r)
{
ll mid=(l+r)/2;
a[mid].a=ask(1,1,n,mid,mid);
if(y-a[mid].a>=id-mid)l=mid;
else r=mid;
}
ll s=ask(1,1,n,l+1,id);
now+=s-(y+y-(id-l-1))*(id-l)/2;
change(1,1,n,l+1,id,y-(id-l-1));
}
else
{
ll l=id,r=n+1;
if(c==19||c==20)r=id+1;
else
while(l+1<r)
{
ll mid=(l+r)/2;
a[mid].a=ask(1,1,n,mid,mid);
if(a[mid].a-y>=mid-id)r=mid;
else l=mid;
}
ll s=ask(1,1,n,id,r-1);
now+=(y+y+(r-id-1))*(r-id)/2-s;
change(1,1,n,id,r-1,y);
}
if(now>t)return false;
}
return true;
}
signed main()
{
// freopen("move.in","r",stdin);
// freopen("move.out","w",stdout);
c=read(),t=read();
while(t--)
{
n=read();
for(int i=1;i<=n;i++)
a[i].a=read(),a[i].b=read(),a[i].t=read();
puts(check()?"Yes":"No");
for(int i=1;i<=n*4;i++)
f[i]={0,0,0};
}
return 0;
}
/*
500455298
500452891
*/
Details
Tip: Click on the bar to expand more detailed information
Pretests
Final Tests
Test #1:
score: 4
Accepted
time: 0ms
memory: 9804kb
input:
1 6 7 4 1 58 5 2 58 6 3 58 9 7 58 10 8 58 11 14 58 12 15 58 7 2 1 7922535048395476 6 3 7922535048395476 7 4 7922535048395476 8 5 7922535048395476 13 10 7922535048395476 14 11 7922535048395476 15 12 7922535048395476 6 1 4 105 2 6 105 3 9 105 10 13 105 11 14 105 12 15 105 5 1 5 67 2 6 67 8 9 67 13 10 ...
output:
Yes Yes Yes Yes No Yes
result:
ok 6 token(s): yes count is 5, no count is 1
Test #2:
score: 4
Accepted
time: 0ms
memory: 9800kb
input:
2 6 7 1 4 12 2 5 14 3 6 12 8 7 15 11 10 13 12 14 15 13 15 6 6 5 1 18 6 3 15 7 4 15 9 10 16 14 11 7 15 12 6 6 6 1 17 7 2 18 8 5 14 9 11 3 12 14 19 13 15 3 6 4 3 12 6 5 2 7 10 10 8 11 10 9 12 12 14 13 11 6 1 2 0 3 6 18 4 8 6 9 13 16 11 14 12 12 15 19 5 4 1 10 5 2 15 6 7 8 9 12 6 10 14 8
output:
Yes Yes No Yes No No
result:
ok 6 token(s): yes count is 3, no count is 3
Test #3:
score: 4
Accepted
time: 0ms
memory: 9796kb
input:
3 6 7 2 1 16 7 3 15 8 4 13 9 6 10 10 11 11 13 12 14 15 14 14 7 1 2 1 3 7 13 4 8 13 6 9 21 13 10 22 14 11 22 15 12 20 5 1 3 4 2 4 4 5 6 6 8 11 11 9 14 13 7 1 2 13 5 3 18 6 4 17 8 7 16 13 9 12 14 10 9 15 12 11 6 2 5 8 3 6 10 4 7 13 9 11 13 12 13 11 14 15 14 5 3 6 6 4 7 4 9 12 12 11 13 9 15 14 13
output:
Yes No Yes Yes No Yes
result:
ok 6 token(s): yes count is 4, no count is 2
Test #4:
score: 4
Accepted
time: 1ms
memory: 9800kb
input:
4 6 199 37 18 65874 50 20 65874 52 42 65874 64 60 65874 72 70 65874 85 82 65874 93 91 65874 109 92 65874 111 97 65874 131 102 65874 148 130 65874 164 138 65874 199 167 65874 217 203 65874 243 214 65874 247 224 65874 271 229 65874 308 233 65874 309 246 65874 318 283 65874 334 331 65874 347 333 65874 ...
output:
No No No No Yes Yes
result:
ok 6 token(s): yes count is 2, no count is 4
Test #5:
score: 4
Accepted
time: 0ms
memory: 9744kb
input:
5 6 199 29 36 369 64 70 1143 71 74 1229 80 94 519 97 102 309 105 142 959 144 160 1243 161 170 1397 184 192 494 198 210 779 212 220 703 222 236 120 239 240 1064 254 264 593 266 271 920 277 281 988 289 292 1319 306 312 664 327 333 1265 336 347 457 357 360 1214 370 388 679 389 396 633 401 411 578 420 4...
output:
No Yes Yes Yes Yes No
result:
ok 6 token(s): yes count is 4, no count is 2
Test #6:
score: 4
Accepted
time: 1ms
memory: 9804kb
input:
6 6 199 45 22 74188 49 33 74205 51 73 58578 71 89 63891 78 92 67804 98 118 63860 99 125 64921 120 128 49873 138 140 40221 142 157 52577 147 184 39214 151 199 55174 167 208 60545 192 213 63389 215 216 64903 235 275 67610 239 281 68856 245 294 70226 247 312 71083 308 339 73698 318 344 74817 336 348 75...
output:
Yes Yes No Yes No No
result:
ok 6 token(s): yes count is 3, no count is 3
Test #7:
score: 4
Accepted
time: 0ms
memory: 9744kb
input:
7 6 198 157 1 90695 179 3 90463 184 5 89928 187 22 89308 191 32 87453 194 36 87435 205 38 85944 207 40 85557 213 59 85314 220 65 84891 228 68 84875 233 71 83145 234 78 82323 235 81 78303 237 92 76908 261 102 76525 275 107 76402 279 112 76524 284 124 63459 288 142 63250 315 156 59959 371 320 65555 37...
output:
Yes No No Yes No Yes
result:
ok 6 token(s): yes count is 3, no count is 3
Test #8:
score: 4
Accepted
time: 9ms
memory: 11700kb
input:
8 6 2998 703476 350568 361034127833 725807 436492 361034127833 1231986 1230439 361034127833 1706679 1235832 361034127833 1849695 1427192 361034127833 1862833 1437577 361034127833 1975829 3186583 361034127833 2086881 3335536 361034127833 2390103 3385039 361034127833 2499416 3604747 361034127833 27327...
output:
No Yes Yes Yes No No
result:
ok 6 token(s): yes count is 3, no count is 3
Test #9:
score: 4
Accepted
time: 11ms
memory: 10148kb
input:
9 6 3000 182672 204002 145628966 233619 264606 66203026 328887 573420 456314943 631179 797510 34453437 1294808 1380985 4692244 1391318 1530506 431577632 1608324 1729541 85569640 1837920 1994485 75594999 2072112 2087294 104826376 2285152 2336929 145990083 2393282 2673930 284568560 2783869 2792779 860...
output:
No No Yes No No No
result:
ok 6 token(s): yes count is 1, no count is 5
Test #10:
score: 4
Accepted
time: 9ms
memory: 9672kb
input:
10 6 3000 2222227 31532 279636770304 2349942 134163 354400286918 2560041 527419 321478195282 3295593 596563 362129656617 3869141 612649 374151982522 3909494 845994 219496747652 4164077 1014016 347814863593 4434642 1048014 277805151037 4819441 1099088 333450514907 5703758 1633041 328059389030 6192622...
output:
No Yes No Yes Yes No
result:
ok 6 token(s): yes count is 3, no count is 3
Test #11:
score: 4
Accepted
time: 8ms
memory: 11724kb
input:
11 6 2999 220527 342273 250754055236 254255 471191 396588863964 297822 814315 450935385357 733075 980291 457899271625 1054047 185178250 1311693556589166 1161026 185790557 563819064114 1241182 186158539 563634434603 1325885 186411046 563613864771 1385875 186679798 563263522481 1390136 186974536 56307...
output:
No Yes Yes Yes No No
result:
ok 6 token(s): yes count is 3, no count is 3
Test #12:
score: 4
Accepted
time: 408ms
memory: 24040kb
input:
12 6 79998 249167 1 19964147940 249174 5 19964147940 249182 8 19964147940 249191 9 19964147940 249192 13 19964147940 249195 14 19964147940 249200 18 19964147940 249202 19 19964147940 249211 27 19964147940 249213 29 19964147940 249214 33 19964147940 249215 34 19964147940 249218 36 19964147940 249219 ...
output:
Yes Yes No Yes Yes No
result:
ok 6 token(s): yes count is 4, no count is 2
Test #13:
score: 4
Accepted
time: 751ms
memory: 21248kb
input:
13 6 79998 2 3 85085 5 7 110934 8 10 76447 19 21 113382 22 34 116328 43 44 92641 63 69 82679 79 82 150338 89 93 83248 94 106 206262 107 110 103397 116 117 38256 119 133 117971 138 139 15052 142 146 112276 148 150 178878 152 161 224257 172 173 23098 175 179 98155 180 183 173659 184 186 244587 188 190...
output:
Yes No Yes Yes Yes No
result:
ok 6 token(s): yes count is 4, no count is 2
Test #14:
score: 4
Accepted
time: 328ms
memory: 24072kb
input:
14 6 80000 1 3 4988939908 2 5 4709983247 6 13 4269997574 10 14 4464798775 11 16 4891136602 12 19 5008095418 20 32 4844785468 21 35 4841690783 25 36 4839602763 26 37 4583024133 29 38 3551461328 39 40 5010625553 42 52 4980297573 50 56 4994880499 60 62 4978544842 63 77 3373729353 68 78 4298210945 69 79...
output:
No Yes Yes Yes Yes Yes
result:
ok 6 token(s): yes count is 5, no count is 1
Test #15:
score: 4
Accepted
time: 272ms
memory: 21444kb
input:
15 6 79999 1 249866 13200183685 4 249868 13200263686 7 249869 13200263689 17 249879 13201115618 20 249882 13201143633 22 249884 13201223628 25 249886 13201303620 37 249888 13201383610 38 249890 13201463603 41 249893 13201623593 43 249894 13201623594 46 249895 13201670636 47 249897 13201703577 48 249...
output:
Yes Yes No Yes Yes Yes
result:
ok 6 token(s): yes count is 5, no count is 1
Test #16:
score: 4
Accepted
time: 377ms
memory: 24080kb
input:
16 6 79999 249703 1 20024824567 249705 3 20024824570 249707 5 20024824558 249709 9 20024824556 249711 13 20024824540 249718 14 20024824534 249724 18 20024824521 249726 21 20024824502 249730 29 20024824452 249732 30 20024824446 249735 35 20024824407 249736 36 20024824406 249740 38 20024824396 249742 ...
output:
Yes Yes No Yes Yes Yes
result:
ok 6 token(s): yes count is 5, no count is 1
Test #17:
score: 4
Accepted
time: 309ms
memory: 23312kb
input:
17 6 79998 250288 6 19961268433 250289 7 19961268436 250290 11 19961268423 250293 13 19961268424 250295 14 19961268414 250303 16 19961268410 250306 17 19961268420 250308 20 19961268396 250314 32 19961268320 250315 35 19961268289 250319 36 19961268289 250321 39 19961268271 250323 41 19961268261 25033...
output:
Yes No Yes Yes No Yes
result:
ok 6 token(s): yes count is 4, no count is 2
Test #18:
score: 4
Accepted
time: 370ms
memory: 19472kb
input:
18 6 79998 17 1 4984837833 21 8 4663850012 22 12 4860300511 23 24 5000863386 28 26 5042057946 38 32 4767031476 42 33 3957006549 46 36 4679775591 53 43 3697383560 58 60 3335484657 61 67 3329623957 64 70 3533763558 88 78 4856080032 94 79 4598840642 96 87 5103578312 97 89 4406500840 98 93 3672001950 10...
output:
No Yes Yes Yes Yes No
result:
ok 6 token(s): yes count is 4, no count is 2
Test #19:
score: 4
Accepted
time: 596ms
memory: 32264kb
input:
19 6 199998 4752 8452 119973858 8641 9204 241564106 13059 20180 265705199 22139 22257 371269578 25275 28894 237538945 29846 29862 474164808 31329 31643 20840351 32051 35475 481710652 38644 40274 374391929 42082 42339 55354676 48966 51694 94077254 54309 57689 469656627 59151 59684 2634589 60197 60316...
output:
No No No Yes Yes Yes
result:
ok 6 token(s): yes count is 3, no count is 3
Test #20:
score: 4
Accepted
time: 483ms
memory: 32272kb
input:
20 6 199998 26 3181 71497185 4034 4169 253881356 5588 10348 273394692 14533 14909 484599741 16739 16820 391395579 17015 19115 489829084 20536 20656 308020799 29649 30545 223163784 34872 34964 385515859 38482 39763 346742942 41178 41505 225380750 43384 44826 444505766 45775 46237 378962392 48122 4923...
output:
No Yes Yes No Yes No
result:
ok 6 token(s): yes count is 3, no count is 3
Test #21:
score: 4
Accepted
time: 1079ms
memory: 32268kb
input:
21 6 199999 385 499729204 49973268223870 5671 499733521 49975598588773 8473 499742695 49975816958706 8607 499744568 49976191351207 10008 499754631 49978226417477 20344 499758687 49979057183863 23375 499759373 49979151671736 25038 499761854 49980095812335 25212 499764540 49980267024910 27314 49976499...
output:
Yes No Yes Yes Yes Yes
result:
ok 6 token(s): yes count is 5, no count is 1
Test #22:
score: 4
Accepted
time: 1199ms
memory: 32104kb
input:
22 6 199999 1559 6500 21276104256382 3535 8380 24379101146289 6626 17675 22430167309624 8624 21116 24544729879990 22708 23269 22196297813107 26167 27130 13393699902230 27263 27486 24795781452827 29899 30162 23661729961219 30457 31557 23242086684450 33192 34535 24359965896122 33666 47228 248722127534...
output:
Yes Yes No Yes Yes Yes
result:
ok 6 token(s): yes count is 5, no count is 1
Test #23:
score: 4
Accepted
time: 1025ms
memory: 32268kb
input:
23 6 200000 500779345 5217 99914602292023 500786016 10755 99914602286451 500786376 14331 99914602279326 500790111 16701 99914602275849 500795539 19071 99914602262716 500796086 24482 99914602235714 500800488 25559 99914602229212 500800958 26552 99914602222302 500804392 29654 99914602202540 500804762 ...
output:
Yes Yes Yes Yes Yes No
result:
ok 6 token(s): yes count is 5, no count is 1
Test #24:
score: 4
Accepted
time: 900ms
memory: 32272kb
input:
24 6 199998 5506 499553171 50000813841622 7523 499555351 50001264432119 12319 499555718 50002227729732 14435 499562243 50002627600951 20585 499563300 50002838794654 24128 499563420 50003086339716 25184 499565069 50003192180625 26272 499567370 50003652159926 30412 499568816 50003941145458 30759 49956...
output:
No No Yes No No Yes
result:
ok 6 token(s): yes count is 2, no count is 4
Test #25:
score: 4
Accepted
time: 945ms
memory: 32268kb
input:
25 6 199999 1835 7026 20930046212798 1968 9460 19017482627921 14954 28845 21795564477058 31838 30996 19632139451212 39876 37417 25377149702336 49265 42233 17475858301617 49787 7332957 17790307884540 55521 7333598 24311981507252 57406 7334415 25180134103886 57427 7337225 16857512321347 57533 7340842 ...
output:
No Yes Yes Yes No Yes
result:
ok 6 token(s): yes count is 4, no count is 2
Extra Test:
score: 0
Extra Test Passed