QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#215947#6433. Klee in Solitary Confinementveg#RE 0ms0kbC++141.0kb2023-10-15 14:38:322023-10-15 14:38:33

Judging History

This is the latest submission verdict.

  • [2023-10-15 14:38:33]
  • Judged
  • Verdict: RE
  • Time: 0ms
  • Memory: 0kb
  • [2023-10-15 14:38:32]
  • Submitted

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

output:


result: