Submission #40621

#TimeUsernameProblemLanguageResultExecution timeMemory
40621repeatingStudentsko (COCI14_studentsko)C++11
10 / 100
18 ms1060 KiB
#include <bits/stdc++.h> #define F first #define S second #define P push #define pb push_back #define MEM(dp,i) memset(dp,i,sizeof(dp)) #define W while #define R return #define C continue #define SI size() #define ll long long #define ld long double #define pll pair<ll,ll> #define pii pair<int,int> #define SF(x) scanf("%Id",&x) #define SF2(x,y) scanf("%Id%Id",&x,&y) #define SF3(x,y,z) scanf("%I64d%I64d%I64d",&x,&y,&z) #define SF4(x,y,z,o) scanf("%I64d%I64d%I64d%I64d",&x,&y,&z,&o) #define all(v) v.begin(),v.end() using namespace std; const long long INF = 1e9+1; const long long MOD = 1e9+7; const int MX=200015; int a[5005]; vector<pii> v; bool vis[5005]; int start[5005]; int FIND(int n,int y){ int res=0; for(int i=0;i<n;i++) res+=(y==a[i]); R res; } int main(){ int n,m; cin>>n>>m; for(int i=0;i<n;i++){ cin>>a[i]; v.pb({a[i],i}); } sort(v.begin(),v.end()); for(int i=0;i<n;i++){ a[v[i].S]=i/m; } for(int i=0;i<n;i++){ if(vis[i])continue; int num=a[i],tk=0; for(int j=i;j<n;j++){ if(a[j]==num){ vis[j]=1; tk++; start[i]++; if(tk==m)tk=0,num++; } } } int res=0; for(int i=0;i<n;i++){ res=max(res,start[i]+FIND(i,a[i]-1)); } cout<<n-res; }
#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...