#include<bits/stdc++.h>
using namespace std;
#define f first
#define s second
int main()
{
int n,k;
cin>>n>>k;
map<int,int> m;
for(int i=0;i<n;i++)
{
int a;
cin>>a;
m[a]=i;
}
vector<pair<int,int>> v;
int i=0;
for(auto [x,y]:m)
{
v.push_back({i/k,y});
i++;
}
sort(v.begin(),v.end(),[](auto &a1,auto &a2)
{
if(a1.f==a2.f)
return a1.s<a2.s;
return a1.f<a2.f;
});
int dp[n];
int sz=0;
for(int i=0;i<n;i++)
{
int d=lower_bound(dp,dp+sz,v[i].s)-dp;
if(d==sz)
sz++;
dp[d]=v[i].s;
}
cout<<n-sz;
}
# | 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... |
# | 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... |