Submission #926563

#TimeUsernameProblemLanguageResultExecution timeMemory
926563AiperiiiRabbit Carrot (LMIO19_triusis)C++14
14 / 100
1044 ms196248 KiB
#include <bits/stdc++.h> #define int long long #define ff first #define ss second #define all(x) x.begin(),x.end() #define pb push_back using namespace std; const int N=5e3+5; int dp[N][N]; signed main(){ ios_base::sync_with_stdio(); cin.tie(0);cout.tie(0); int n,m; cin>>n>>m; vector <int> a(n); for(int i=0;i<n;i++)cin>>a[i]; for(int i=0;i<=5000;i++){ if(i!=a[0])dp[0][i]=1; } for(int i=0;i<=5000;i++){ if(i>m)dp[0][i]+=1e9; } for(int i=1;i<n;i++){ multiset <int> ms; int ind=0; for(int j=0;j<=5000;j++){ int mn=1e9; if(ms.size()!=0)mn=*ms.begin(); if(j!=a[i])dp[i][j]=mn+1; else dp[i][j]=mn; ms.insert(dp[i-1][j]); if(ms.size()>m){ ms.erase(ms.find(dp[i-1][ind])); ind++; } } int mn=1e9; for(int j=5000;j>=0;j--){ mn=min(mn,dp[i-1][j]); if(j!=a[i])dp[i][j]=min(dp[i][j],mn+1); else dp[i][j]=min(dp[i][j],mn); } } int ans=1e9; for(int i=0;i<=5000;i++){ ans=min(ans,dp[n-1][i]); } cout<<ans<<"\n"; } /* 5 400 300 700 200 1000 500 3 300 700 1000 1300 */

Compilation message (stderr)

triusis.cpp: In function 'int main()':
triusis.cpp:32:25: warning: comparison of integer expressions of different signedness: 'std::multiset<long long int>::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
   32 |             if(ms.size()>m){
      |                ~~~~~~~~~^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...