QOJ.ac
QOJ
The 2nd Universal Cup Finals is coming! Check out our event page, schedule, and competition rules!
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#215947 | #6433. Klee in Solitary Confinement | veg# | RE | 0ms | 0kb | C++14 | 1.0kb | 2023-10-15 14:38:32 | 2023-10-15 14:38:33 |
Judging History
answer
#include<bits/stdc++.h>
#define pb push_back
const int M=2e6+5;
using namespace std;
const int N=4e6+5;
int n,m,a[N],f[N],g[N];
vector<int>V[N];
int main() {
// freopen("1.in","r",stdin);
scanf("%d%d",&n,&m);
for(int i=1;i<=n;++i) {
scanf("%d",&a[i]);
}
if(m==0) {
int ans=0;
for(int i=1;i<=n;++i) {
f[i]=f[g[a[i]+M]]+1;
g[a[i]+M]=i;
ans=max(ans,f[i]);
}
printf("%d\n",ans);
return 0;
}
int ans=0;
for(int i=1;i<=n;++i) {
V[a[i]+M].pb(i);
V[a[i]+M+m].pb(i);
}
for(int i=0;i<=M+M;++i) {
if(V[i].size()==0) continue;
int s1=0,s2=0;
for(auto j:V[i]){
if(i-M==a[j]) {
++s1;
} else if(i-M==a[j]+m){
++s2;
}
f[j]=s1,g[j]=s2;
}
/* printf("%d: \n",i-M);
for(int i=1;i<=n;++i) {
printf("%d ",f[i]);
}
puts("");
for(int i=1;i<=n;++i) {
printf("%d ",g[i]);
}
puts(""); */
ans=max(ans,s1);
int mx=0;
for(auto j:V[i]) {
ans=max(ans,g[j]-f[j]+mx+s1);
mx=max(mx,f[j]-g[j]);
}
}
printf("%d\n",ans);
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 0
Runtime Error
input:
5 2 2 2 4 4 4