Submission #538863

#TimeUsernameProblemLanguageResultExecution timeMemory
538863AntekbGrowing Vegetable is Fun 3 (JOI19_ho_t3)C++14
15 / 100
38 ms9184 KiB
#include<bits/stdc++.h> using namespace std; int ans; string s; int main(){ int n; cin>>n; cin>>s; vector<int> V[3]; for(int i=0; i<n; i++){ int c=0; if(s[i]=='R')c=1; if(s[i]=='Y')c=2; V[c].push_back(i+1); } vector<vector<vector<vector<int> > > > dp(3, vector<vector<vector<int> > >(V[0].size()+1 , vector<vector<int>>(V[1].size()+1, vector<int>(V[2].size()+1, 1e9)))); dp[0][0][0][0]=dp[1][0][0][0]=dp[2][0][0][0]=0; for(int s=1; s<=n; s++){ for(int i=0; i<=V[0].size(); i++){ for(int j=0; j<=V[1].size(); j++){ //for(int k=0; k<=V[2].size(); k++){ int k=s-i-j; if(k<0 || k>V[2].size())continue; //if(!k && !i && !j)continue; if(i)dp[0][i][j][k]=min(dp[1][i-1][j][k], dp[2][i-1][j][k])+abs(i+j+k-V[0][i-1]); if(j)dp[1][i][j][k]=min(dp[0][i][j-1][k], dp[2][i][j-1][k])+abs(i+j+k-V[1][j-1]); if(k)dp[2][i][j][k]=min(dp[1][i][j][k-1], dp[0][i][j][k-1])+abs(i+j+k-V[2][k-1]); //} //cout<<i<<" "<<j<<" "<<k<<" "<<dp[0][i][j][k]<<" "<<dp[1][i][j][k]<<" "<<dp[2][i][j][k]<<"\n"; } } } int a=V[0].size(), b=V[1].size(), c=V[2].size(); //cout<<a<<" "<<b<<" "<<c<<" "; /*for(int i=0; i<=a; i++){ for(int j=0; j<=b; j++){ for(int k=0; k<=b;) } }*/ int k=min({dp[0][a][b][c], dp[1][a][b][c], dp[2][a][b][c]}); if(k>=1e9)cout<<-1; else cout<<k/2<<"\n"; }

Compilation message (stderr)

joi2019_ho_t3.cpp: In function 'int main()':
joi2019_ho_t3.cpp:21:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   21 |     for(int i=0; i<=V[0].size(); i++){
      |                  ~^~~~~~~~~~~~~
joi2019_ho_t3.cpp:22:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   22 |         for(int j=0; j<=V[1].size(); j++){
      |                      ~^~~~~~~~~~~~~
joi2019_ho_t3.cpp:25:28: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   25 |                 if(k<0 || k>V[2].size())continue;
      |                           ~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...