#include<bits/stdc++.h>
using namespace std;
#define fast ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
#define ll long long int
const ll N = 100+5 , INF = 1e18 , MOD = 1e9+7;
void solve(){
ll n,k;
cin >> n >> k;
vector<pair<ll,ll>> a(n+5);
for(ll i = 1; i <= n; i++){
cin >> a[i].first;
a[i].second = i;
}
sort(a.begin()+1,a.begin()+n+1);
vector<ll> b(n+5);
for(ll i = 1; i <= n; i++) b[a[i].second] = ((i+k-1)/k);
vector<ll> dp(n+5);
for(ll i = 1; i <= n; i++){
dp[i] = 1;
for(ll j = i-1; j >= 1; j--){
if(b[i] >= b[j]) dp[i] = max(dp[i],dp[j]+1);
}
}
ll ans = -INF;
for(ll i = 1; i <= n; i++) ans = max(ans,dp[i]);
cout << n-ans;
}
int main(){
fast;
ll tc = 1;
// cin >> tc;
while(tc--) solve();
return 0;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
212 KB |
Output is correct |
2 |
Correct |
1 ms |
212 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
212 KB |
Output is correct |
2 |
Correct |
1 ms |
316 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
320 KB |
Output is correct |
2 |
Correct |
1 ms |
320 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
36 ms |
516 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
38 ms |
456 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
30 ms |
468 KB |
Output is correct |
2 |
Correct |
32 ms |
468 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
41 ms |
500 KB |
Output is correct |
2 |
Correct |
47 ms |
504 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
40 ms |
460 KB |
Output is correct |
2 |
Correct |
30 ms |
468 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
40 ms |
480 KB |
Output is correct |
2 |
Correct |
38 ms |
500 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
42 ms |
516 KB |
Output is correct |
2 |
Correct |
44 ms |
468 KB |
Output is correct |