#include "sequence.h"
#include<bits/stdc++.h>
#define ll int
#define pll pair<ll, ll>
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define ld long double
#define sz(a) ((ll)(a).size())
using namespace std;
const ll maxn=500005, inf=1e9;
vector <ll> p[maxn];
ll a[maxn], minp[maxn], maxp[maxn], mins[maxn], maxs[maxn];
namespace SegTree
{
ll n, Max[maxn*4], Min[maxn*4], lz[maxn*4];
void build(ll i, ll Start, ll End)
{
if (Start==End) {Min[i]=Max[i]=Start; return;}
ll mid=(Start+End)/2;
build(i*2, Start, mid), build(i*2+1, mid+1, End);
Min[i]=min(Min[i*2], Min[i*2+1]);
Max[i]=max(Max[i*2], Max[i*2+1]);
}
void init(ll sz){n=sz, build(1, 0, n);}
void Move(ll i)
{
ll t=lz[i]; lz[i]=0;
Min[i*2]+=t, Max[i*2]+=t, lz[i*2]+=t;
Min[i*2+1]+=t, Max[i*2+1]+=t, lz[i*2+1]+=t;
}
void update(ll i, ll Start, ll End, ll l, ll r, ll x)
{
if (Start>r || End<l) return;
if (Start>=l && End<=r) {Max[i]+=x, Min[i]+=x, lz[i]+=x; return;}
ll mid=(Start+End)/2; if (lz[i]) Move(i);
if (mid>=l) update(i*2, Start, mid, l, r, x);
if (mid+1<=r) update(i*2+1, mid+1, End, l, r, x);
Min[i]=min(Min[i*2], Min[i*2+1]);
Max[i]=max(Max[i*2], Max[i*2+1]);
}
void update(ll l, ll r, ll x) {update(1, 0, n, l, r, x);}
pll query(ll i, ll Start, ll End, ll l, ll r)
{
if (Start>r || End<l) return {1e9, 0};
if (Start>=l && End<=r) return {Min[i], Max[i]};
ll mid=(Start+End)/2; if (lz[i]) Move(i);
if (mid<l) return query(i*2+1, mid+1, End, l, r);
if (mid+1>r) return query(i*2, Start, mid, l, r);
pll q1=query(i*2, Start, mid, l, r), q2=query(i*2+1, mid+1, End, l, r);
return {min(q1.fi, q2.fi), max(q1.se, q2.se)};
}
pll query(ll l, ll r){return query(1, 0, n, l, r);}
}
int sequence(int n, vector <int> A)
{
ll ans=0;
SegTree::init(n);
for (ll i=1; i<=n; i++) a[i]=A[i-1], p[a[i]].pb(i);
for (ll i=1; i<=n; i++)
{
for (ll j:p[i]) SegTree::update(j, n, -2);
for (ll z=sz(p[i])-1; z>=0; z--)
{
ll j=p[i][z];
SegTree::update(j, n, 2);
while (z+ans<sz(p[i]))
{
ll r=p[i][z+ans], l1, r1, l2, r2;
tie(l1, r1)=SegTree::query(0, j-1);
tie(l2, r2)=SegTree::query(r, n);
if (max(l1, l2-2*(ans+1))-min(r1, r2)<=0) ans++;
else break;
}
}
for (ll j:p[i]) SegTree::update(j, n, -2);
}
return ans;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
20572 KB |
Output is correct |
2 |
Correct |
4 ms |
20572 KB |
Output is correct |
3 |
Correct |
4 ms |
20572 KB |
Output is correct |
4 |
Correct |
4 ms |
20572 KB |
Output is correct |
5 |
Correct |
4 ms |
20572 KB |
Output is correct |
6 |
Correct |
4 ms |
20572 KB |
Output is correct |
7 |
Correct |
5 ms |
20636 KB |
Output is correct |
8 |
Correct |
5 ms |
20572 KB |
Output is correct |
9 |
Correct |
5 ms |
20572 KB |
Output is correct |
10 |
Correct |
5 ms |
20420 KB |
Output is correct |
11 |
Correct |
5 ms |
20636 KB |
Output is correct |
12 |
Correct |
4 ms |
20572 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
20572 KB |
Output is correct |
2 |
Correct |
4 ms |
20572 KB |
Output is correct |
3 |
Correct |
4 ms |
20572 KB |
Output is correct |
4 |
Correct |
4 ms |
20572 KB |
Output is correct |
5 |
Correct |
4 ms |
20572 KB |
Output is correct |
6 |
Correct |
4 ms |
20572 KB |
Output is correct |
7 |
Correct |
5 ms |
20636 KB |
Output is correct |
8 |
Correct |
5 ms |
20572 KB |
Output is correct |
9 |
Correct |
5 ms |
20572 KB |
Output is correct |
10 |
Correct |
5 ms |
20420 KB |
Output is correct |
11 |
Correct |
5 ms |
20636 KB |
Output is correct |
12 |
Correct |
4 ms |
20572 KB |
Output is correct |
13 |
Correct |
5 ms |
20572 KB |
Output is correct |
14 |
Correct |
5 ms |
20572 KB |
Output is correct |
15 |
Correct |
5 ms |
20572 KB |
Output is correct |
16 |
Correct |
7 ms |
20572 KB |
Output is correct |
17 |
Correct |
5 ms |
20704 KB |
Output is correct |
18 |
Correct |
5 ms |
20572 KB |
Output is correct |
19 |
Correct |
5 ms |
20676 KB |
Output is correct |
20 |
Correct |
5 ms |
20572 KB |
Output is correct |
21 |
Correct |
5 ms |
20728 KB |
Output is correct |
22 |
Correct |
5 ms |
20572 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
20572 KB |
Output is correct |
2 |
Correct |
313 ms |
46680 KB |
Output is correct |
3 |
Correct |
313 ms |
46640 KB |
Output is correct |
4 |
Correct |
313 ms |
39272 KB |
Output is correct |
5 |
Correct |
290 ms |
46008 KB |
Output is correct |
6 |
Correct |
280 ms |
45724 KB |
Output is correct |
7 |
Correct |
255 ms |
39508 KB |
Output is correct |
8 |
Correct |
312 ms |
39440 KB |
Output is correct |
9 |
Correct |
300 ms |
38968 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
20572 KB |
Output is correct |
2 |
Correct |
316 ms |
39184 KB |
Output is correct |
3 |
Correct |
412 ms |
39084 KB |
Output is correct |
4 |
Correct |
334 ms |
39264 KB |
Output is correct |
5 |
Correct |
388 ms |
39268 KB |
Output is correct |
6 |
Correct |
367 ms |
40200 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
479 ms |
52692 KB |
Output is correct |
2 |
Correct |
434 ms |
52684 KB |
Output is correct |
3 |
Correct |
392 ms |
52116 KB |
Output is correct |
4 |
Correct |
480 ms |
52792 KB |
Output is correct |
5 |
Correct |
365 ms |
48780 KB |
Output is correct |
6 |
Correct |
370 ms |
48920 KB |
Output is correct |
7 |
Correct |
328 ms |
47456 KB |
Output is correct |
8 |
Correct |
320 ms |
47136 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
20572 KB |
Output is correct |
2 |
Correct |
4 ms |
20572 KB |
Output is correct |
3 |
Correct |
4 ms |
20572 KB |
Output is correct |
4 |
Correct |
4 ms |
20572 KB |
Output is correct |
5 |
Correct |
4 ms |
20572 KB |
Output is correct |
6 |
Correct |
4 ms |
20572 KB |
Output is correct |
7 |
Correct |
5 ms |
20636 KB |
Output is correct |
8 |
Correct |
5 ms |
20572 KB |
Output is correct |
9 |
Correct |
5 ms |
20572 KB |
Output is correct |
10 |
Correct |
5 ms |
20420 KB |
Output is correct |
11 |
Correct |
5 ms |
20636 KB |
Output is correct |
12 |
Correct |
4 ms |
20572 KB |
Output is correct |
13 |
Correct |
5 ms |
20572 KB |
Output is correct |
14 |
Correct |
5 ms |
20572 KB |
Output is correct |
15 |
Correct |
5 ms |
20572 KB |
Output is correct |
16 |
Correct |
7 ms |
20572 KB |
Output is correct |
17 |
Correct |
5 ms |
20704 KB |
Output is correct |
18 |
Correct |
5 ms |
20572 KB |
Output is correct |
19 |
Correct |
5 ms |
20676 KB |
Output is correct |
20 |
Correct |
5 ms |
20572 KB |
Output is correct |
21 |
Correct |
5 ms |
20728 KB |
Output is correct |
22 |
Correct |
5 ms |
20572 KB |
Output is correct |
23 |
Correct |
66 ms |
28448 KB |
Output is correct |
24 |
Correct |
68 ms |
29644 KB |
Output is correct |
25 |
Correct |
60 ms |
28448 KB |
Output is correct |
26 |
Correct |
71 ms |
28508 KB |
Output is correct |
27 |
Correct |
91 ms |
28504 KB |
Output is correct |
28 |
Correct |
62 ms |
27228 KB |
Output is correct |
29 |
Correct |
53 ms |
27992 KB |
Output is correct |
30 |
Correct |
62 ms |
27040 KB |
Output is correct |
31 |
Correct |
60 ms |
27116 KB |
Output is correct |
32 |
Correct |
44 ms |
29520 KB |
Output is correct |
33 |
Correct |
63 ms |
28252 KB |
Output is correct |
34 |
Correct |
62 ms |
28256 KB |
Output is correct |
35 |
Correct |
61 ms |
29276 KB |
Output is correct |
36 |
Correct |
61 ms |
28052 KB |
Output is correct |
37 |
Correct |
61 ms |
28252 KB |
Output is correct |
38 |
Correct |
62 ms |
28280 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
20572 KB |
Output is correct |
2 |
Correct |
4 ms |
20572 KB |
Output is correct |
3 |
Correct |
4 ms |
20572 KB |
Output is correct |
4 |
Correct |
4 ms |
20572 KB |
Output is correct |
5 |
Correct |
4 ms |
20572 KB |
Output is correct |
6 |
Correct |
4 ms |
20572 KB |
Output is correct |
7 |
Correct |
5 ms |
20636 KB |
Output is correct |
8 |
Correct |
5 ms |
20572 KB |
Output is correct |
9 |
Correct |
5 ms |
20572 KB |
Output is correct |
10 |
Correct |
5 ms |
20420 KB |
Output is correct |
11 |
Correct |
5 ms |
20636 KB |
Output is correct |
12 |
Correct |
4 ms |
20572 KB |
Output is correct |
13 |
Correct |
5 ms |
20572 KB |
Output is correct |
14 |
Correct |
5 ms |
20572 KB |
Output is correct |
15 |
Correct |
5 ms |
20572 KB |
Output is correct |
16 |
Correct |
7 ms |
20572 KB |
Output is correct |
17 |
Correct |
5 ms |
20704 KB |
Output is correct |
18 |
Correct |
5 ms |
20572 KB |
Output is correct |
19 |
Correct |
5 ms |
20676 KB |
Output is correct |
20 |
Correct |
5 ms |
20572 KB |
Output is correct |
21 |
Correct |
5 ms |
20728 KB |
Output is correct |
22 |
Correct |
5 ms |
20572 KB |
Output is correct |
23 |
Correct |
313 ms |
46680 KB |
Output is correct |
24 |
Correct |
313 ms |
46640 KB |
Output is correct |
25 |
Correct |
313 ms |
39272 KB |
Output is correct |
26 |
Correct |
290 ms |
46008 KB |
Output is correct |
27 |
Correct |
280 ms |
45724 KB |
Output is correct |
28 |
Correct |
255 ms |
39508 KB |
Output is correct |
29 |
Correct |
312 ms |
39440 KB |
Output is correct |
30 |
Correct |
300 ms |
38968 KB |
Output is correct |
31 |
Correct |
316 ms |
39184 KB |
Output is correct |
32 |
Correct |
412 ms |
39084 KB |
Output is correct |
33 |
Correct |
334 ms |
39264 KB |
Output is correct |
34 |
Correct |
388 ms |
39268 KB |
Output is correct |
35 |
Correct |
367 ms |
40200 KB |
Output is correct |
36 |
Correct |
479 ms |
52692 KB |
Output is correct |
37 |
Correct |
434 ms |
52684 KB |
Output is correct |
38 |
Correct |
392 ms |
52116 KB |
Output is correct |
39 |
Correct |
480 ms |
52792 KB |
Output is correct |
40 |
Correct |
365 ms |
48780 KB |
Output is correct |
41 |
Correct |
370 ms |
48920 KB |
Output is correct |
42 |
Correct |
328 ms |
47456 KB |
Output is correct |
43 |
Correct |
320 ms |
47136 KB |
Output is correct |
44 |
Correct |
66 ms |
28448 KB |
Output is correct |
45 |
Correct |
68 ms |
29644 KB |
Output is correct |
46 |
Correct |
60 ms |
28448 KB |
Output is correct |
47 |
Correct |
71 ms |
28508 KB |
Output is correct |
48 |
Correct |
91 ms |
28504 KB |
Output is correct |
49 |
Correct |
62 ms |
27228 KB |
Output is correct |
50 |
Correct |
53 ms |
27992 KB |
Output is correct |
51 |
Correct |
62 ms |
27040 KB |
Output is correct |
52 |
Correct |
60 ms |
27116 KB |
Output is correct |
53 |
Correct |
44 ms |
29520 KB |
Output is correct |
54 |
Correct |
63 ms |
28252 KB |
Output is correct |
55 |
Correct |
62 ms |
28256 KB |
Output is correct |
56 |
Correct |
61 ms |
29276 KB |
Output is correct |
57 |
Correct |
61 ms |
28052 KB |
Output is correct |
58 |
Correct |
61 ms |
28252 KB |
Output is correct |
59 |
Correct |
62 ms |
28280 KB |
Output is correct |
60 |
Correct |
512 ms |
50276 KB |
Output is correct |
61 |
Correct |
490 ms |
50036 KB |
Output is correct |
62 |
Correct |
499 ms |
50092 KB |
Output is correct |
63 |
Correct |
458 ms |
42120 KB |
Output is correct |
64 |
Correct |
446 ms |
42068 KB |
Output is correct |
65 |
Correct |
526 ms |
42068 KB |
Output is correct |
66 |
Correct |
353 ms |
40020 KB |
Output is correct |
67 |
Correct |
340 ms |
40288 KB |
Output is correct |
68 |
Correct |
375 ms |
42548 KB |
Output is correct |
69 |
Correct |
299 ms |
55940 KB |
Output is correct |
70 |
Correct |
510 ms |
49188 KB |
Output is correct |
71 |
Correct |
506 ms |
49004 KB |
Output is correct |
72 |
Correct |
491 ms |
48696 KB |
Output is correct |
73 |
Correct |
499 ms |
49096 KB |
Output is correct |
74 |
Correct |
471 ms |
48588 KB |
Output is correct |
75 |
Correct |
485 ms |
49028 KB |
Output is correct |