#include<bits/stdc++.h>
#define MAXN 300007
using namespace std;
bool cmp(pair<int,int> fr,pair<int,int> sc){
if(fr.first!=sc.first)return fr.first<sc.first;
return fr.second>sc.second;
}
int n,d;
int dp[MAXN];
pair<int,int> p[MAXN];
bool used[MAXN];
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n>>d;
for(int i=1;i<=n;i++){
cin>>p[i].first;
p[i].second=i;
}
sort(p+1,p+n+1,cmp);
p[n+1].second=n+1;
for(int i=1;i<=n+1;i++){
int curr=p[i].second;
used[curr]=true;
dp[curr]=1;
int br=0;
for(int f=curr-1;f>=1;f--){
if(!used[f]){
br++;
if(br>=d)break;
continue;
}else br=0;
dp[curr]=max(dp[curr],dp[f]+1);
}
}
cout<<dp[n+1]-1<<"\n";
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |