QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#454170 | #8528. Chords | ucup-team1525# | WA | 2888ms | 6072kb | C++20 | 1.9kb | 2024-06-24 17:08:52 | 2024-06-24 17:08:53 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
const int N=100005;
mt19937 rnd(time(0));
struct dt
{
int l,r,len,v;
bool operator<(const dt &a)const
{
return (len==a.len?l<a.l:len<a.len);
}
}a[N];
int f[N*2];
int n;
inline void ins(int x,int y)
{
for (;x<=n*2;x+=x&(-x))
f[x]^=y;
}
inline int ask(int x)
{
int ans=0;
for (;x;x-=x&(-x))
ans^=f[x];
return ans;
}
int g[N],h[N];
void raodong(int mx)
{
for (int i=1;i<=100;++i)
{
g[i]=rnd()%mx+1;
int q=min(n-g[i]+1,max(mx/2,20));
h[i]=g[i]+rnd()%q;
// h[i]=rnd()%n+1;
// while (g[i]==h[i])
// {
// h[i]=rnd()%n+1;
// }
swap(a[g[i]],a[h[i]]);
}
}
void roll_back()
{
for (int i=100;i;--i)
{
swap(a[g[i]],a[h[i]]);
}
}
int main()
{
clock_t bg=clock();
scanf("%d",&n);
for (int i=1;i<=n;++i)
{
scanf("%d%d",&a[i].l,&a[i].r);
a[i].len=a[i].r-a[i].l;
a[i].len=min(a[i].len,n*2-a[i].len);
a[i].v=rnd();
// a[i+n]={a[i].r,a[i].l,n*2-a[i].len};
}
sort(a+1,a+1+n);
int ans=0;
int mx=max(1,n/4);
while (clock()-bg<=2.9*CLOCKS_PER_SEC)
// for (int t=1;t<=100;++t)
{
int sum=0;
for (int i=1;i<=n;++i)
if (ask(a[i].l-1)==ask(a[i].r))
{
++sum;
ins(a[i].l,a[i].v);
ins(a[i].r,a[i].v);
}
if (sum>ans)
{
ans=sum;
}
else
{
if (sum<ans)
{
roll_back();
mx+=n/40;
mx=min(n,mx);
}
}
if (n==1)
break;
raodong(mx);
for (int i=1;i<=2*n;++i)
f[i]=0;
}
printf("%d\n",ans);
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 2663ms
memory: 5912kb
input:
5 1 2 4 10 7 9 3 5 6 8
output:
3
result:
ok 1 number(s): "3"
Test #2:
score: 0
Accepted
time: 1ms
memory: 5920kb
input:
1 1 2
output:
1
result:
ok 1 number(s): "1"
Test #3:
score: 0
Accepted
time: 2652ms
memory: 5936kb
input:
2 1 3 2 4
output:
1
result:
ok 1 number(s): "1"
Test #4:
score: 0
Accepted
time: 2640ms
memory: 5912kb
input:
2 1 4 2 3
output:
2
result:
ok 1 number(s): "2"
Test #5:
score: 0
Accepted
time: 2644ms
memory: 5872kb
input:
3 3 5 1 4 2 6
output:
2
result:
ok 1 number(s): "2"
Test #6:
score: 0
Accepted
time: 2668ms
memory: 6060kb
input:
4 2 7 1 6 3 8 4 5
output:
2
result:
ok 1 number(s): "2"
Test #7:
score: 0
Accepted
time: 2652ms
memory: 4032kb
input:
6 8 9 6 7 4 10 1 5 11 12 2 3
output:
5
result:
ok 1 number(s): "5"
Test #8:
score: 0
Accepted
time: 2696ms
memory: 4028kb
input:
9 2 8 10 17 9 15 1 12 6 14 3 13 4 11 5 7 16 18
output:
4
result:
ok 1 number(s): "4"
Test #9:
score: 0
Accepted
time: 2692ms
memory: 6072kb
input:
13 8 16 2 13 14 23 10 11 7 17 6 24 12 18 9 20 4 15 19 21 3 26 1 25 5 22
output:
6
result:
ok 1 number(s): "6"
Test #10:
score: 0
Accepted
time: 2696ms
memory: 3896kb
input:
19 34 35 4 20 9 31 12 17 18 38 23 29 19 30 25 26 10 36 1 7 13 37 2 11 8 32 6 28 16 24 5 27 14 21 15 22 3 33
output:
8
result:
ok 1 number(s): "8"
Test #11:
score: 0
Accepted
time: 2752ms
memory: 6060kb
input:
28 9 45 7 19 15 40 42 44 26 31 20 22 16 55 6 34 41 56 28 51 2 33 36 53 3 13 37 52 4 46 12 48 21 27 24 30 23 38 1 32 8 14 43 54 11 17 47 49 29 35 5 25 18 39 10 50
output:
10
result:
ok 1 number(s): "10"
Test #12:
score: 0
Accepted
time: 2763ms
memory: 6000kb
input:
42 2 66 29 75 5 45 8 53 50 72 25 44 15 47 6 57 64 68 26 80 32 49 65 70 27 54 37 58 18 36 10 48 3 63 28 60 30 76 16 41 7 83 21 24 14 17 31 67 62 71 20 74 11 33 43 84 40 61 19 69 35 82 13 42 34 79 12 73 9 51 4 23 77 81 22 59 1 52 39 55 38 56 46 78
output:
11
result:
ok 1 number(s): "11"
Test #13:
score: 0
Accepted
time: 2760ms
memory: 5936kb
input:
63 40 105 6 104 45 83 16 22 31 34 51 57 64 92 75 112 70 82 65 121 32 93 18 60 30 68 72 77 86 101 10 47 85 94 36 71 11 35 27 126 56 74 15 52 19 91 88 110 76 97 25 33 58 109 42 54 12 26 73 107 99 118 29 106 44 90 3 9 23 122 14 79 87 116 4 81 17 111 41 53 50 123 38 124 13 114 67 96 5 100 55 115 43 62 4...
output:
17
result:
ok 1 number(s): "17"
Test #14:
score: 0
Accepted
time: 2836ms
memory: 5996kb
input:
94 109 118 69 152 93 185 111 162 17 188 15 175 35 123 13 95 72 186 83 160 52 117 24 159 128 163 56 179 141 168 25 58 44 82 47 53 78 172 100 105 70 106 143 164 4 88 99 182 98 146 57 77 38 112 91 149 45 174 125 138 26 34 37 121 62 134 97 187 2 66 22 40 153 181 86 108 19 155 33 130 103 177 11 21 18 126...
output:
21
result:
ok 1 number(s): "21"
Test #15:
score: 0
Accepted
time: 2836ms
memory: 3968kb
input:
141 31 127 1 73 84 94 158 254 129 208 35 114 112 201 182 222 18 259 27 267 67 271 14 160 22 269 89 161 57 58 49 86 8 184 202 256 24 43 194 198 225 273 204 265 79 270 66 249 54 250 130 268 26 162 165 261 197 257 119 279 216 232 21 274 151 179 106 140 28 48 122 206 65 186 3 177 90 92 15 105 163 262 14...
output:
32
result:
ok 1 number(s): "32"
Test #16:
score: 0
Accepted
time: 2828ms
memory: 5916kb
input:
211 101 338 116 315 84 296 142 211 22 419 260 266 157 261 231 360 95 100 27 111 286 409 355 372 50 348 97 178 39 349 153 217 63 203 236 289 156 278 37 311 40 306 282 384 113 240 168 365 5 89 190 322 71 414 77 191 10 325 87 357 321 376 370 380 207 362 30 165 9 170 128 287 43 398 56 180 310 335 42 70 ...
output:
29
result:
ok 1 number(s): "29"
Test #17:
score: 0
Accepted
time: 2872ms
memory: 5908kb
input:
316 433 483 190 220 85 439 171 209 459 479 4 63 335 434 315 400 55 155 125 558 457 619 90 187 135 301 172 497 124 354 101 363 140 312 288 425 99 513 147 516 120 122 143 180 138 500 78 617 123 191 231 615 268 536 227 417 32 67 360 554 263 553 108 165 105 257 295 620 95 212 21 319 87 464 356 559 266 6...
output:
45
result:
ok 1 number(s): "45"
Test #18:
score: 0
Accepted
time: 2868ms
memory: 3848kb
input:
474 177 498 736 821 556 671 366 896 11 519 110 409 282 813 219 355 516 562 395 893 388 436 52 767 174 490 627 911 23 796 280 468 724 947 367 371 324 872 484 578 125 163 93 218 549 916 272 649 694 704 86 716 420 508 569 905 329 805 386 433 32 175 169 898 6 809 456 659 688 914 143 803 405 506 103 682 ...
output:
53
result:
ok 1 number(s): "53"
Test #19:
score: 0
Accepted
time: 2876ms
memory: 3892kb
input:
711 394 512 506 1310 203 763 470 1161 548 1183 94 383 131 1123 467 478 141 695 969 1128 210 211 1045 1236 1184 1258 536 658 53 1174 115 687 648 911 410 735 266 732 226 1300 646 826 952 1019 353 1387 60 533 972 1221 418 1360 162 677 166 981 730 1130 859 1414 252 365 129 515 258 581 214 1290 1133 1289...
output:
61
result:
ok 1 number(s): "61"
Test #20:
score: 0
Accepted
time: 2888ms
memory: 5908kb
input:
1066 1612 1799 593 928 560 965 683 1118 1058 1221 664 879 696 1724 54 102 1580 1588 599 1444 796 1749 35 1831 1 1261 299 1420 607 1048 147 643 873 1405 450 1080 1310 1489 1029 1658 183 752 666 1797 211 1485 51 802 42 673 1484 1811 540 561 934 1869 571 2081 1070 1248 362 1149 641 740 1540 1755 1329 1...
output:
82
result:
ok 1 number(s): "82"
Test #21:
score: -100
Wrong Answer
time: 2884ms
memory: 5892kb
input:
1599 668 1208 169 1885 106 2776 28 96 812 2453 2216 3175 783 2096 1005 1448 1430 1831 1252 3133 957 2070 2278 3096 747 1967 1765 2448 2377 2694 1522 1993 529 1006 329 771 130 1634 2057 2243 1222 3030 410 2565 1654 2264 1117 1387 1168 2360 2292 2848 1386 1460 2101 2124 671 3156 2215 2829 637 2782 20 ...
output:
92
result:
wrong answer 1st numbers differ - expected: '95', found: '92'