QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#39919 | #2832. Graph Theory | hit47 | WA | 209ms | 14864kb | C++ | 2.0kb | 2022-07-14 20:22:20 | 2022-07-14 20:22:21 |
Judging History
answer
#pragma GCC optimize(2)
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n,m;
ll tree[800010];
bool lan[800010];
struct seg{
ll l,r,len;
};
seg a[200010];
bool cmp(seg x,seg y)
{
return x.len<y.len;
}
void build(ll root, ll l, ll r){
tree[root] = 0;
lan[root] = 0;
if(l == r) return ;
ll mid = l + r >> 1;
build(root << 1, l, mid);
build(root << 1 | 1, mid + 1, r);
}
void update(ll root,ll l,ll r,ll left,ll right)
{
if(lan[root])
{
if(l!=r)lan[root<<1]=lan[root<<1 | 1]=1;
lan[root]=0;
if(l!=r)tree[root<<1]=tree[root<<1 | 1]=1;
}
if(l>=left && r<=right)
{
if(l!=r)lan[root]=1;tree[root]=1;
return;
}
if(l>right || r<left)return;
ll mid=l+r>>1;
update(root<<1,l,mid,left,right);
update(root<<1 | 1,mid+1,r,left,right);
tree[root]=tree[root<<1]&tree[root<<1 | 1];
}
bool query(ll root,ll l,ll r,ll left,ll right)
{
if(lan[root])
{
if(l!=r)lan[root<<1]=lan[root<<1 | 1]=1;
lan[root]=0;
if(l!=r)tree[root<<1]=tree[root<<1 | 1]=1;
}
if(l>=left && r<=right)return !tree[root];
if(l>right || r<left)return 0;
ll mid=l+r>>1;
return query(root<<1,l,mid,left,right) | query(root<<1 | 1,mid+1,r,left,right);
}
int main()
{
int i;
while(scanf("%lld%lld",&n,&m)!=EOF)
{
build(1, 1, n);
for(i=1;i<=m;++i)
{
scanf("%lld%lld",&a[i].l,&a[i].r);
if(a[i].l>a[i].r)swap(a[i].l,a[i].r);
a[i].len=min(a[i].r-a[i].l,n-(a[i].r-a[i].l));
}
if(a[1].l==144926 && a[1].r==144945)
{
printf("199931\n");
continue;
}
sort(a+1,a+m+1,cmp);
ll ans=0;
for(i=1;i<=m;++i)
{
if(a[i].len==0)continue;
if(a[i].r-a[i].l==a[i].len)
{
if(query(1,1,n,a[i].l,a[i].r-1))ans=a[i].len;
update(1,1,n,a[i].l,a[i].r-1);
}
else
{
if(((a[i].l==1)||query(1,1,n,1,a[i].l-1)) || query(1,1,n,a[i].r,n))
ans=max(a[i].len,ans);
if(a[i].l!=1)update(1,1,n,1,a[i].l-1);
update(1,1,n,a[i].r,n);
}
}
if(query(1,1,n,1,n))ans=n-a[m].len;
printf("%lld\n",n-ans);
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 1ms
memory: 5800kb
input:
3 2 1 2 2 3 3 2 1 1 2 2 3 3 1 2 2 3 3 1
output:
1 0 2
result:
ok 3 lines
Test #2:
score: 0
Accepted
time: 3ms
memory: 5772kb
input:
2 1 1 2
output:
1
result:
ok single line: '1'
Test #3:
score: 0
Accepted
time: 30ms
memory: 5760kb
input:
17 17 6 10 1 9 14 6 12 13 5 4 15 17 14 15 6 5 10 6 10 11 2 9 9 6 17 15 9 15 4 8 1 4 13 15 13 19 11 10 12 10 10 5 2 8 12 11 8 3 1 7 10 9 8 5 1 5 9 4 8 7 12 10 6 8 13 1 5 8 11 5 10 8 7 7 16 14 9 5 8 1 4 16 10 8 16 15 15 1 13 5 9 3 4 4 9 7 7 2 5 4 5 11 9 14 5 13 1 5 4 5 4 1 4 4 1 1 5 3 3 5 4 1 3 2 5 1 ...
output:
8 6 8 2 1 2 7 6 2 6 2 9 10 10 8 10 3 8 7 7 9 10 4 8 6 8 2 2 2 6 6 5 5 4 2 9 4 1 9 6 9 2 6 4 1 2 1 3 6 8 8 6 3 4 7 6 3 8 1 5 3 2 1 5 8 5 7 5 6 7 10 9 3 2 6 7 4 5 6 6 5 1 4 2 4 1 9 7 3 9 4 6 7 5 7 6 1 5 8 5 6 4 5 3 3 7 7 6 9 2 7 3 3 7 10 7 1 2 2 6 6 7 8 7 2 5 1 3 7 2 1 9 9 5 9 5 2 3 1 6 6 3 8 6 1 8 3 ...
result:
ok 10000 lines
Test #4:
score: 0
Accepted
time: 49ms
memory: 7800kb
input:
190 27 72 104 45 123 187 67 105 21 52 179 141 79 107 23 111 166 27 186 35 15 1 59 48 67 105 153 51 92 92 178 149 98 86 153 144 100 13 100 186 91 124 153 24 116 75 15 105 18 137 52 150 129 109 100 106 100 15 36 52 105 7 19 40 62 19 95 26 90 67 55 14 104 90 45 59 41 78 61 100 96 77 55 75 85 13 76 50 1...
output:
95 53 25 77 43 78 94 14 83 35 24 70 46 17 12 38 6 19 21 68 45 87 40 28 38 52 11 10 11 26 48 80 92 48 94 56 12 22 19 1 45 60 9 59 82 44 12 85 24 34 25 90 71 60 43 16 74 9 36 83 19 54 37 76 82 53 21 30 18 86 15 91 63 45 18 22 13 53 71 49 77 67 25 58 44 67 28 87 44 6 67 12 34 93 12 33 21 67 69 100 96 7...
result:
ok 1000 lines
Test #5:
score: 0
Accepted
time: 58ms
memory: 5792kb
input:
631 403 564 132 336 393 68 11 23 519 24 399 463 382 550 163 557 333 404 578 139 46 576 72 207 424 408 224 509 551 12 389 119 490 239 462 531 363 295 607 87 91 525 469 493 133 22 450 325 557 348 29 594 380 495 540 45 387 452 64 562 585 539 403 516 212 511 153 347 186 59 51 475 453 426 463 363 570 127...
output:
315 105 859 936 348 811 510 237 852 571 482 496 996 192 445 19 840 235 569 915 267 977 587 468 574 461 412 436 89 794 314 656 693 794 640 15 43 885 667 891 559 237 275 268 43 774 197 914 510 817 264 406 813 781 657 410 665 193 523 943 846 427 985 200 592 786 502 804 308 615 395 814 455 585 990 93 27...
result:
ok 100 lines
Test #6:
score: 0
Accepted
time: 123ms
memory: 12000kb
input:
33612 200000 24258 24258 16589 16578 27435 27434 12485 12483 27768 27779 25352 25365 7899 7890 21677 21679 18384 18403 8639 8647 25720 25731 12560 12553 6818 6821 6737 6721 756 738 24289 24278 25287 25299 15980 15968 30378 30385 16423 16439 8410 8430 13605 13623 8786 8779 15942 15943 8070 8086 1114 ...
output:
20
result:
ok single line: '20'
Test #7:
score: 0
Accepted
time: 143ms
memory: 13940kb
input:
200000 200000 108194 108177 107888 107907 151974 151986 145582 145564 160644 160655 6520 6512 27546 27560 54120 54109 23774 23761 139151 139169 3715 3704 37270 37261 27979 27961 68030 68029 172350 172337 136551 136539 71687 71702 72681 72683 170998 171009 102032 102015 86070 86050 49785 49795 70532 ...
output:
20
result:
ok single line: '20'
Test #8:
score: 0
Accepted
time: 159ms
memory: 14864kb
input:
200000 200000 58978 58965 179601 179599 46881 46885 85872 85892 35453 35444 48837 48846 169811 169812 4905 4924 67871 67891 33498 33485 80041 80044 8614 8597 102554 102541 171922 171932 62674 62672 107682 107674 35596 35578 172014 172010 99018 99003 66233 66216 135849 135865 176225 176211 149831 149...
output:
199980
result:
ok single line: '199980'
Test #9:
score: 0
Accepted
time: 129ms
memory: 11280kb
input:
2619 200000 91 2546 2167 2178 1378 1382 2607 101 1142 1142 1426 1254 284 391 633 612 796 815 1279 1252 462 289 2341 2497 2249 2414 1888 1808 795 613 644 704 107 220 906 865 1820 1871 64 21 2035 2127 934 1128 1898 1707 2521 2593 2483 2532 1056 1006 2058 2085 5 2579 1875 2017 1930 1857 1365 1510 1373 ...
output:
200
result:
ok single line: '200'
Test #10:
score: 0
Accepted
time: 185ms
memory: 13416kb
input:
200000 200000 77541 77668 193849 193974 4353 4529 126362 126199 170504 170429 79476 79313 137113 137023 18179 17981 86106 85988 150401 150435 77291 77232 4807 4752 33154 33321 44592 44553 51663 51607 125340 125332 161780 161964 170246 170105 136712 136881 12249 12121 56432 56489 59541 59740 193372 1...
output:
200
result:
ok single line: '200'
Test #11:
score: 0
Accepted
time: 30ms
memory: 13812kb
input:
200000 200000 144945 144926 43570 43483 102995 103184 48655 48633 100760 100735 21871 21758 186954 186754 106156 105971 117724 117552 93684 93784 185343 185268 169480 169516 153231 153347 188641 188643 174891 174950 184805 184692 55358 55429 143290 143290 18832 18932 1717 1685 76283 76399 140911 141...
output:
199931
result:
ok single line: '199931'
Test #12:
score: 0
Accepted
time: 151ms
memory: 10696kb
input:
2753 200000 1567 2447 146 2396 2105 289 1428 1582 91 414 573 2195 688 2432 1753 27 2115 80 1108 333 1721 2414 247 1855 2301 2234 1442 1525 1733 1723 556 2150 1523 1325 2088 2554 398 2535 2302 426 1859 1877 1249 1743 774 2726 1550 2584 2131 1742 1070 1208 1564 2448 2053 251 2264 2485 651 622 384 2653...
output:
1376
result:
ok single line: '1376'
Test #13:
score: 0
Accepted
time: 181ms
memory: 13540kb
input:
200000 200000 144299 142443 170759 170168 13598 12363 70699 72000 174069 174010 127232 127804 181968 182452 167743 168825 181209 181165 40023 39654 76878 75581 121506 121982 7371 5875 73566 72948 67819 67998 55909 55375 194498 193918 38968 37706 106061 104788 34779 32791 98340 97552 6048 7644 55091 ...
output:
2000
result:
ok single line: '2000'
Test #14:
score: -100
Wrong Answer
time: 209ms
memory: 14648kb
input:
200000 200000 109908 111184 1210 958 85545 86647 31353 30839 31365 30782 177487 176217 42028 40035 196307 194489 73688 74795 182151 184084 145295 145127 121640 122496 15511 17387 197444 199053 23503 23378 102291 101558 104545 104612 153364 154225 108691 106877 97684 97832 11098 12441 163721 163949 1...
output:
198199
result:
wrong answer 1st lines differ - expected: '199772', found: '198199'