Submission #259211

#TimeUsernameProblemLanguageResultExecution timeMemory
259211MolukhyyehStudentsko (COCI14_studentsko)C++14
100 / 100
393 ms49656 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define all(x) x.begin(),x.end() 

int const N = 5001;
int n, k, v[N];
short dp[N][N];
pair<int,int> a[N];

short go(int i, int j){
    if(i == (n+1))return 0;
    short &ret = dp[i][j];
    if(~ret)return ret;
    ret = go(i+1, j);
    if(v[i] >= v[j])ret = max((short)(go(i+1, i)+1), ret);
    return ret;
}

int main(){
    scanf("%d%d", &n, &k);
    for(int i = 1; i<=n; ++i){
      scanf("%d", v+i);
      a[i] = {v[i], i};
    }
    sort(a, a+(n+1));
    int c = 1, ct = 0;
    for(int i = 1; i<=n; ++i){
       v[a[i].second] = c;
       ++ct;
       if(ct == k)ct = 0, ++c;
    }
    memset(dp, -1, sizeof dp);
    int an = go(1, 0);
    printf("%d\n", n-an);
}

Compilation message (stderr)

studentsko.cpp: In function 'int main()':
studentsko.cpp:21:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d%d", &n, &k);
     ~~~~~^~~~~~~~~~~~~~~~
studentsko.cpp:23:12: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
       scanf("%d", v+i);
       ~~~~~^~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...