Submission #66341994


Source Code Expand

#include<bits/stdc++.h>
using namespace std;
#define rep(i,a,n) for(int i=a;i<=n;i++)
#define per(i,a,n) for(int i=n;i>=a;i--)
#define pb push_back
#define SZ(v) ((int)v.size())
#define fs first
#define sc second
#define all(x) (x.begin()),(x.end())
typedef long long ll;
typedef double db;
typedef pair<int,int> pii;
int n,D,R,h[500010];
struct node{
	int l,r,mx;
}tr[500010*4];
void push_up(int p){
	tr[p].mx=max(tr[p*2].mx,tr[p*2+1].mx);
}
void build(int p,int l,int r){
	if(l==r){
		tr[p]=node({l,l,0});
		return ;
	}
	int mid=(l+r)/2;
	tr[p]=node({l,r,0});
	build(p*2,l,mid);
	build(p*2+1,mid+1,r);
}
void upd(int p,int id,int val){
	if(tr[p].l==tr[p].r){
		tr[p].mx=val;
		return;
	}
	int mid=(tr[p].l+tr[p].r)/2;
	if(id<=mid) upd(2*p,id,val);
	else upd(2*p+1,id,val);
	push_up(p);
}
int qr(int p,int L,int R){
	if(L<=tr[p].l&&tr[p].r<=R) return tr[p].mx;
	int mid=(tr[p].l+tr[p].r)/2;
	int res=0;
	if(L<=mid) res=max(res,qr(2*p,L,R));
	if(R>=mid+1) res=max(res,qr(2*p+1,L,R));
	return res;
}
int ans[500010],pos[500010];
int main(){
	std::ios::sync_with_stdio(false);
	cin.tie(0);
	cin>>n>>D>>R;
	rep(i,1,n){
		cin>>h[i];
		pos[h[i]]=i;
	}
	build(1,1,n);
	int anss=0;
	rep(h,1,n){
		if(h-D>=1){
			upd(1,pos[h-D],ans[h-D]);
		}
		int l=max(1,pos[h]-R),r=min(pos[h]+R,n);
		ans[h]=qr(1,l,r)+1;
		anss=max(anss,ans[h]);
	}
	cout<<anss-1<<"\n";
	return 0;
}

Submission Info

Submission Time
Task F - Athletic
User friedchicken
Language C++ 20 (gcc 12.2)
Score 500
Code Size 1429 Byte
Status AC
Exec Time 342 ms
Memory 21692 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 500 / 500
Status
AC × 2
AC × 39
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt
All 00_sample_00.txt, 00_sample_01.txt, 01_test_00.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt, 01_test_21.txt, 01_test_22.txt, 01_test_23.txt, 01_test_24.txt, 01_test_25.txt, 01_test_26.txt, 01_test_27.txt, 01_test_28.txt, 01_test_29.txt, 01_test_30.txt, 01_test_31.txt, 01_test_32.txt, 01_test_33.txt, 01_test_34.txt, 01_test_35.txt, 01_test_36.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 1 ms 3424 KiB
00_sample_01.txt AC 1 ms 3412 KiB
01_test_00.txt AC 1 ms 3528 KiB
01_test_01.txt AC 1 ms 3532 KiB
01_test_02.txt AC 1 ms 3432 KiB
01_test_03.txt AC 1 ms 3488 KiB
01_test_04.txt AC 1 ms 3504 KiB
01_test_05.txt AC 1 ms 3628 KiB
01_test_06.txt AC 132 ms 18980 KiB
01_test_07.txt AC 342 ms 21396 KiB
01_test_08.txt AC 55 ms 11208 KiB
01_test_09.txt AC 47 ms 7492 KiB
01_test_10.txt AC 48 ms 11360 KiB
01_test_11.txt AC 230 ms 20768 KiB
01_test_12.txt AC 50 ms 11624 KiB
01_test_13.txt AC 3 ms 3708 KiB
01_test_14.txt AC 37 ms 8060 KiB
01_test_15.txt AC 36 ms 7464 KiB
01_test_16.txt AC 157 ms 19452 KiB
01_test_17.txt AC 217 ms 20340 KiB
01_test_18.txt AC 275 ms 21600 KiB
01_test_19.txt AC 340 ms 21564 KiB
01_test_20.txt AC 182 ms 21692 KiB
01_test_21.txt AC 326 ms 21452 KiB
01_test_22.txt AC 194 ms 21524 KiB
01_test_23.txt AC 329 ms 21568 KiB
01_test_24.txt AC 153 ms 21472 KiB
01_test_25.txt AC 35 ms 21604 KiB
01_test_26.txt AC 34 ms 21540 KiB
01_test_27.txt AC 149 ms 21576 KiB
01_test_28.txt AC 150 ms 21576 KiB
01_test_29.txt AC 92 ms 21472 KiB
01_test_30.txt AC 250 ms 21572 KiB
01_test_31.txt AC 224 ms 21688 KiB
01_test_32.txt AC 250 ms 21472 KiB
01_test_33.txt AC 258 ms 21608 KiB
01_test_34.txt AC 255 ms 21556 KiB
01_test_35.txt AC 257 ms 21568 KiB
01_test_36.txt AC 1 ms 3440 KiB