QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#109127 | #6528. Sequence | _yjh | 11 | 577ms | 78888kb | C++14 | 3.9kb | 2023-05-27 15:08:27 | 2023-05-27 15:08:30 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef double db;
inline ll read() {
ll x=0,f=1;char ch=getchar();
while(!isdigit(ch)) {if(ch=='-')f=-1;ch=getchar();}
while(isdigit(ch)) {x=x*10+ch-48;ch=getchar();}
return x*f;
}
int maxx(int a,int b) {
if(a>b) return a;
return b;
}
int minn(int a,int b) {
if(a>b) return b;
return a;
}
const ll MAXN=500005;
int n,cnt,a[MAXN],b[MAXN],nw[MAXN];
bool sg;
map <int,int> mp;
vector <int> p[MAXN];
struct range {
int l,r;
void add(int a) {
l=minn(l,a),r=maxx(r,a);
}
};
range merge(range a,range b) {
return (range){a.l+b.l,a.r+b.r};
}
//int num=0;
struct SGTree {
#define lc t<<1
#define rc t<<1|1
struct Node {
int mx,mn,lz;
}nd[4*MAXN];
void pushup(int t) {
nd[t].mx=maxx(nd[lc].mx,nd[rc].mx);
nd[t].mn=minn(nd[lc].mn,nd[rc].mn);
}
void pushdown(int t) {
if(nd[t].lz) {
nd[lc].mn+=nd[t].lz;
nd[rc].mn+=nd[t].lz;
nd[lc].mx+=nd[t].lz;
nd[rc].mx+=nd[t].lz;
nd[lc].lz+=nd[t].lz;
nd[rc].lz+=nd[t].lz;
nd[t].lz=0;
}
}
void Build(int t,int l,int r) {
nd[t].lz=0;
if(l==r) {
nd[t].mx=nd[t].mn=l;
return ;
}
int mid=(l+r)>>1;
Build(lc,l,mid);
Build(rc,mid+1,r);
pushup(t);
}
void build() {
Build(1,1,n);
}
void Update(int t,int l,int r,int ll,int rr,int k) {
if(ll<=l&&r<=rr) {
nd[t].mx+=k;
nd[t].mn+=k;
nd[t].lz+=k;
return ;
}
pushdown(t);
int mid=(l+r)>>1;
if(ll<=mid) Update(lc,l,mid,ll,rr,k);
if(rr>=mid+1) Update(rc,mid+1,r,ll,rr,k);
pushup(t);
}
void upd(int p,int k) {
if(nw[p]==k) return ;
// num++;
Update(1,1,n,p,n,(k-nw[p]));
nw[p]=k;
}
int mx,mn;
void Query(int t,int l,int r,int ll,int rr) {
if(ll<=l&&r<=rr) {
mx=maxx(mx,nd[t].mx);
mn=minn(mn,nd[t].mn);
return ;
}
pushdown(t);
int mid=(l+r)>>1;
if(ll<=mid) Query(lc,l,mid,ll,rr);
if(rr>=mid+1) Query(rc,mid+1,r,ll,rr);
}
void init() {
mx=-(n+1),mn=(n+1);
}
int qsum(int l,int r) {
// num++;
if(l>r) return 0;
int sum=0;
init();
Query(1,1,n,r,r);
sum+=mx;
if(l!=1) {
init();
Query(1,1,n,l-1,l-1);
sum-=mx;
}
return sum;
}
range qsuf(int x) {
range ans=(range){0,0};
if(!x) return ans;
int sum=qsum(1,x);
init();
Query(1,1,n,1,x);
ans.l=mn,ans.r=mx;
ans.add(0);
int tl=sum-ans.r,tr=sum-ans.l;
ans.l=tl,ans.r=tr;
return ans;
}
range qpre(int x) {
range ans=(range){0,0};
if(x==n+1) return ans;
int sum=qsum(1,x-1);
init();
Query(1,1,n,x,n);
ans.l=mn-sum,ans.r=mx-sum;
ans.add(0);
return ans;
}
bool judge(int x,int l,int r) {
qpre(r+1);
qpre(r+1);
range nw=merge(qsuf(l-1),qpre(r+1));
int sum=qsum(l,r);
nw.l+=sum,nw.r+=sum;
if(nw.r<=0) return x>=(-nw.r);
if(nw.l>=0) return x>=nw.l;
return 1;
}
}sgt;
bool check(int num,int x) {
int sz=p[num].size();
// assert(x<=sz);
for(int i=0;i<sz;i++) {
if(i<x) sgt.upd(p[num][i],0);
else sgt.upd(p[num][i],1);
}
for(int l=0;l+x-1<sz;l++) {
int r=l+x-1;
sgt.upd(p[num][r],0);
if(sgt.judge(x,p[num][l],p[num][r])) return true;
sgt.upd(p[num][l],-1);
}
// cout<<num<<' '<<x<<' '<<0<<'\n';
return false;
}
void clear(int x) {
int sz=p[x].size();
for(int i=0;i<sz;i++) sgt.upd(p[x][i],-1);
}
int solve() {
sgt.build();
int fans=1;
for(int i=1;i<=n;i++) nw[i]=1;
for(int i=1;i<=cnt;i++) {
int sz=p[i].size();
int l=fans+1,r=sz,ans=-1;
if(cnt) l++;
// cout<<"!"<<l<<' '<<r<<'\n';
while(l<=r) {
int mid=(l+r)>>1;
if(check(i,mid)) l=mid+1,ans=mid;
else r=mid-1;
}
fans=max(fans,ans);
clear(i);
}
return fans;
}
int sequence(int N, std::vector<int> A) {
n=N;
for(int i=1;i<=n;i++) a[i]=b[i]=A[i-1];
sort(b+1,b+n+1);
for(int i=1;i<=n;i++) if(b[i]!=b[i-1]) mp[b[i]]=++cnt;
for(int i=1;i<=n;i++) {
a[i]=mp[a[i]];
p[a[i]].push_back(i);
}
sg=(cnt>sqrt(n));
return solve();
}
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 11
Accepted
Test #1:
score: 11
Accepted
time: 2ms
memory: 22020kb
input:
8wq90di9812978rqwiok0k0o21klklm21oiwi121 98 92 89 9 86 80 6 42 20 84 82 46 56 52 30 44 39 35 82 57 33 18 38 32 63 27 55 33 44 41 39 62 26 46 59 21 85 36 60 7 36 50 22 87 83 71 27 4 3 87 47 17 62 70 24 9 20 81 21 57 50 13 32 68 70 11 95 5 56 64 90 47 42 44 72 71 46 84 72 56 63 37 35 80 78 4 54 74 79 ...
output:
nfp39szm23aa01pcmyosi03slwpeksnfjri3opqp OK 3
result:
ok
Test #2:
score: 0
Accepted
time: 1ms
memory: 22100kb
input:
8wq90di9812978rqwiok0k0o21klklm21oiwi121 96 1 6 1 4 6 2 5 1 1 2 8 2 4 4 1 9 8 9 8 5 3 6 6 4 9 4 2 8 8 8 2 9 1 3 6 6 1 6 5 5 3 7 9 7 1 8 5 6 8 5 1 1 4 9 6 7 2 6 6 7 4 2 2 8 5 6 4 8 2 6 5 8 6 1 6 2 1 3 4 6 3 6 8 2 5 7 8 2 4 1 5 6 2 3 6 6
output:
nfp39szm23aa01pcmyosi03slwpeksnfjri3opqp OK 18
result:
ok
Test #3:
score: 0
Accepted
time: 1ms
memory: 22000kb
input:
8wq90di9812978rqwiok0k0o21klklm21oiwi121 99 1 3 5 1 2 4 1 3 4 1 5 5 3 1 1 4 2 1 4 5 5 4 1 4 4 2 1 2 2 1 5 2 4 2 1 5 1 3 3 4 3 2 3 1 3 2 2 4 1 5 4 2 2 2 4 5 3 4 3 2 3 4 5 4 5 1 2 2 2 5 3 1 3 5 1 2 1 2 1 2 3 1 4 4 4 5 3 3 3 5 1 3 4 2 4 4 2 1 2
output:
nfp39szm23aa01pcmyosi03slwpeksnfjri3opqp OK 19
result:
ok
Test #4:
score: 0
Accepted
time: 7ms
memory: 22156kb
input:
8wq90di9812978rqwiok0k0o21klklm21oiwi121 100 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 ...
output:
nfp39szm23aa01pcmyosi03slwpeksnfjri3opqp OK 100
result:
ok
Test #5:
score: 0
Accepted
time: 6ms
memory: 19980kb
input:
8wq90di9812978rqwiok0k0o21klklm21oiwi121 97 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 8...
output:
nfp39szm23aa01pcmyosi03slwpeksnfjri3opqp OK 1
result:
ok
Test #6:
score: 0
Accepted
time: 1ms
memory: 20148kb
input:
8wq90di9812978rqwiok0k0o21klklm21oiwi121 100 48 40 13 1 8 31 46 19 42 9 13 8 33 43 85 9 36 21 83 49 4 49 49 24 49 82 9 88 24 33 23 99 79 46 83 49 2 4 40 92 49 44 92 99 49 49 38 49 12 29 49 89 100 81 79 85 22 38 49 8 27 29 3 100 100 42 82 49 31 26 40 49 46 10 49 49 84 77 93 20 33 90 49 18 49 49 18 84...
output:
nfp39szm23aa01pcmyosi03slwpeksnfjri3opqp OK 18
result:
ok
Test #7:
score: 0
Accepted
time: 7ms
memory: 22200kb
input:
8wq90di9812978rqwiok0k0o21klklm21oiwi121 97 42 47 7 23 9 10 53 75 53 53 2 1 75 14 4 16 53 35 32 37 97 31 47 91 77 84 53 87 93 85 70 80 2 19 53 53 67 85 25 3 37 41 52 21 30 84 25 15 37 30 97 53 22 97 33 97 53 9 69 38 71 6 74 4 13 26 27 90 91 47 11 90 7 76 97 17 80 53 23 95 73 53 1 21 43 42 2 33 29 32...
output:
nfp39szm23aa01pcmyosi03slwpeksnfjri3opqp OK 11
result:
ok
Test #8:
score: 0
Accepted
time: 1ms
memory: 22024kb
input:
8wq90di9812978rqwiok0k0o21klklm21oiwi121 98 72 73 8 81 47 26 17 61 93 69 95 7 25 42 15 45 17 88 42 94 68 49 23 50 93 42 97 43 11 7 83 42 43 42 57 12 76 54 61 76 71 42 62 87 87 7 42 83 92 47 72 66 88 1 23 51 42 26 74 42 84 70 59 42 83 14 60 81 53 56 42 20 56 8 92 69 42 76 42 24 87 70 4 80 79 61 66 93...
output:
nfp39szm23aa01pcmyosi03slwpeksnfjri3opqp OK 5
result:
ok
Test #9:
score: 0
Accepted
time: 1ms
memory: 22136kb
input:
8wq90di9812978rqwiok0k0o21klklm21oiwi121 99 85 88 94 94 59 47 63 75 75 40 38 35 59 56 81 48 96 47 46 34 96 62 35 46 83 34 95 34 69 48 15 10 3 92 67 34 38 92 84 84 42 49 86 63 82 65 39 89 80 14 34 69 55 42 67 34 68 86 15 72 18 96 2 7 1 89 16 68 65 97 52 38 92 34 87 16 2 62 34 18 34 74 34 8 21 77 45 8...
output:
nfp39szm23aa01pcmyosi03slwpeksnfjri3opqp OK 7
result:
ok
Subtask #2:
score: 0
Wrong Answer
Dependency #1:
100%
Accepted
Test #10:
score: 0
Wrong Answer
time: 1ms
memory: 22312kb
input:
8wq90di9812978rqwiok0k0o21klklm21oiwi121 1999 486 1494 1286 1247 138 393 816 1646 971 1657 1284 1320 702 194 602 1775 13 1856 61 1264 1005 681 1679 1174 718 1781 1407 97 365 1949 1805 1609 1066 637 98 1686 1361 584 146 1879 941 62 1433 1850 729 1754 71 1292 1945 1328 1705 362 591 407 998 1909 1690 2...
output:
nfp39szm23aa01pcmyosi03slwpeksnfjri3opqp OK 3
result:
wrong answer 1st lines differ - on the 1st token, expected: '4', found: '3'
Subtask #3:
score: 0
Wrong Answer
Test #20:
score: 7
Accepted
time: 300ms
memory: 64476kb
input:
8wq90di9812978rqwiok0k0o21klklm21oiwi121 499996 53 78 81 111 119 124 126 130 164 175 219 227 233 249 282 298 332 341 348 436 437 448 452 455 462 465 495 535 557 558 576 600 620 627 632 642 643 659 695 696 713 730 743 805 816 865 869 872 875 882 883 902 924 937 990 998 1025 1092 1137 1145 1166 1176 1...
output:
nfp39szm23aa01pcmyosi03slwpeksnfjri3opqp OK 8
result:
ok
Test #21:
score: -7
Wrong Answer
time: 292ms
memory: 62672kb
input:
8wq90di9812978rqwiok0k0o21klklm21oiwi121 499996 5 7 11 19 19 19 19 23 23 27 29 31 32 33 34 37 37 40 45 49 53 57 67 69 70 76 79 80 82 82 84 89 91 96 105 109 109 109 110 111 112 113 116 119 120 121 122 129 133 135 136 142 145 147 148 151 155 160 161 162 162 171 174 177 178 179 180 181 185 189 191 192 ...
output:
nfp39szm23aa01pcmyosi03slwpeksnfjri3opqp OK 8
result:
wrong answer 1st lines differ - on the 1st token, expected: '9', found: '8'
Subtask #4:
score: 0
Time Limit Exceeded
Test #28:
score: 12
Accepted
time: 182ms
memory: 40068kb
input:
8wq90di9812978rqwiok0k0o21klklm21oiwi121 499999 2 1 2 2 2 1 2 3 1 3 1 2 2 1 2 1 1 2 1 1 2 1 1 2 1 2 1 1 1 1 1 2 2 1 1 2 1 1 1 2 1 2 1 1 1 2 3 3 3 3 1 3 1 2 2 1 1 1 3 1 3 1 1 2 1 2 2 2 1 3 2 1 1 1 2 2 1 2 2 3 1 2 2 1 2 2 1 1 2 1 1 2 2 1 2 2 1 1 1 1 2 2 1 1 1 1 1 2 1 1 2 1 1 3 2 1 1 1 3 1 1 2 1 3 1 1 ...
output:
nfp39szm23aa01pcmyosi03slwpeksnfjri3opqp OK 277713
result:
ok
Test #29:
score: -12
Time Limit Exceeded
input:
8wq90di9812978rqwiok0k0o21klklm21oiwi121 499999 2 3 1 3 3 3 1 2 3 3 3 2 2 1 1 3 1 2 1 3 3 3 2 2 2 2 3 3 2 2 2 1 1 2 3 3 1 3 1 1 2 3 3 1 1 1 2 1 1 1 2 3 2 2 1 2 1 1 3 1 1 1 3 1 1 2 1 3 2 3 1 3 1 3 3 2 1 3 1 2 1 3 2 1 1 2 3 1 2 1 3 3 1 2 1 3 3 3 2 3 2 1 1 2 1 2 3 1 1 2 2 1 3 2 3 2 3 2 2 1 3 2 3 1 3 3 ...
output:
Unauthorized output
result:
Subtask #5:
score: 0
Wrong Answer
Test #33:
score: 13
Accepted
time: 576ms
memory: 78888kb
input:
8wq90di9812978rqwiok0k0o21klklm21oiwi121 499999 490225 471440 499001 369862 494577 479599 486292 476071 471988 486939 482356 482290 497141 488452 495446 494292 404798 493826 482595 481107 447196 477441 418064 495941 448927 483365 418585 489220 443224 482574 487957 467944 493253 472016 475543 442250 ...
output:
nfp39szm23aa01pcmyosi03slwpeksnfjri3opqp OK 1
result:
ok
Test #34:
score: 0
Accepted
time: 577ms
memory: 76916kb
input:
8wq90di9812978rqwiok0k0o21klklm21oiwi121 499999 490225 471440 499001 369862 494577 479599 486292 476071 471988 486939 482356 482290 497141 488452 495446 494292 404798 493826 482595 481107 447196 477441 418064 495941 448927 483365 418585 489220 443224 482574 487957 467944 493253 472016 475543 442250 ...
output:
nfp39szm23aa01pcmyosi03slwpeksnfjri3opqp OK 1
result:
ok
Test #35:
score: -13
Wrong Answer
time: 576ms
memory: 75640kb
input:
8wq90di9812978rqwiok0k0o21klklm21oiwi121 499999 8693 471440 17469 369862 13045 479599 4760 476071 471988 5407 824 758 15609 6920 13914 12760 404798 12294 1063 481107 447196 477441 418064 14409 448927 1833 418585 7688 443224 1042 6425 467944 11721 472016 475543 442250 17475 477814 477933 468083 40726...
output:
nfp39szm23aa01pcmyosi03slwpeksnfjri3opqp OK 1
result:
wrong answer 1st lines differ - on the 1st token, expected: '2', found: '1'
Subtask #6:
score: 0
Skipped
Dependency #2:
0%
Subtask #7:
score: 0
Skipped
Dependency #1:
100%
Accepted
Dependency #2:
0%