Submission #330458

#TimeUsernameProblemLanguageResultExecution timeMemory
330458GioChkhaidzeGrowing Vegetable is Fun 3 (JOI19_ho_t3)C++14
100 / 100
80 ms3052 KiB
#include <bits/stdc++.h> using namespace std; const int N=404; char c; int n,Cr,Cg,Cy,t,id,A,B,x,y; int a[N]; int dp[N][N][4],dp_[N][N][4]; int R[N],G[N],Y[N]; vector < int > v[4]; main () { cin>>n; for (int i=1; i<=n; i++) { cin>>c; R[i]=R[i-1]+(c=='R'); G[i]=G[i-1]+(c=='G'); Y[i]=Y[i-1]+(c=='Y'); if (c=='R') a[i]=0; else if (c=='G') a[i]=1; else if (c=='Y') a[i]=2; v[a[i]].push_back(i); } for (Cr=0; Cr<=v[0].size(); Cr++) for (Cg=0; Cg<=v[1].size(); Cg++) for (t=0; t<3; t++) dp_[Cr][Cg][t]=1e9; dp_[0][0][0]=0; dp_[0][0][1]=0; dp_[0][0][2]=0; for (int i=1; i<=n; i++) { for (Cr=0; Cr<=i && Cr<=v[0].size(); Cr++) for (Cg=0; Cg+Cr<=i && Cg<=v[1].size(); Cg++) for (t=0; t<3; t++) { dp[Cr][Cg][t]=1e9; } for (Cr=0; Cr<=i && Cr<=v[0].size(); Cr++) for (Cg=0; Cg+Cr<=i && Cg<=v[1].size(); Cg++) { Cy=i-Cr-Cg; if (Cy>v[2].size()) continue; if (Cr) { id=v[0][Cr-1]; A=max(0,Cg-G[id]),B=max(0,Cy-Y[id]); dp[Cr][Cg][0]= min(dp_[Cr-1][Cg][1],dp_[Cr-1][Cg][2]) + A + B; } if (Cg) { id=v[1][Cg-1]; A=max(0,Cr-R[id]),B=max(0,Cy-Y[id]); dp[Cr][Cg][1]= min(dp_[Cr][Cg-1][0],dp_[Cr][Cg-1][2]) + A + B; } if (Cy) { id=v[2][Cy-1]; A=max(0,Cr-R[id]),B=max(0,Cg-G[id]); dp[Cr][Cg][2]= min(dp_[Cr][Cg][0],dp_[Cr][Cg][1]) + A + B; } } for (Cr=0; Cr<=i && Cr<=v[0].size(); Cr++) for (Cg=0; Cg+Cr<=i && Cg<=v[1].size(); Cg++) for (t=0; t<=2; t++) dp_[Cr][Cg][t]=dp[Cr][Cg][t]; } int ans=1e9; for (t=0; t<3; ++t) { ans=min(ans,dp_[v[0].size()][v[1].size()][t]); } if (ans==1e9) ans=-1; cout<<ans<<"\n"; }

Compilation message (stderr)

joi2019_ho_t3.cpp:14:7: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   14 | main () {
      |       ^
joi2019_ho_t3.cpp: In function 'int main()':
joi2019_ho_t3.cpp:31:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   31 |  for (Cr=0; Cr<=v[0].size(); Cr++)
      |             ~~^~~~~~~~~~~~~
joi2019_ho_t3.cpp:32:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   32 |   for (Cg=0; Cg<=v[1].size(); Cg++)
      |              ~~^~~~~~~~~~~~~
joi2019_ho_t3.cpp:42:25: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   42 |   for (Cr=0; Cr<=i && Cr<=v[0].size(); Cr++)
      |                       ~~^~~~~~~~~~~~~
joi2019_ho_t3.cpp:43:29: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   43 |    for (Cg=0; Cg+Cr<=i && Cg<=v[1].size(); Cg++)
      |                           ~~^~~~~~~~~~~~~
joi2019_ho_t3.cpp:48:25: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   48 |   for (Cr=0; Cr<=i && Cr<=v[0].size(); Cr++)
      |                       ~~^~~~~~~~~~~~~
joi2019_ho_t3.cpp:49:29: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   49 |    for (Cg=0; Cg+Cr<=i && Cg<=v[1].size(); Cg++) {
      |                           ~~^~~~~~~~~~~~~
joi2019_ho_t3.cpp:51:11: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   51 |     if (Cy>v[2].size()) continue;
      |         ~~^~~~~~~~~~~~
joi2019_ho_t3.cpp:72:25: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   72 |   for (Cr=0; Cr<=i && Cr<=v[0].size(); Cr++)
      |                       ~~^~~~~~~~~~~~~
joi2019_ho_t3.cpp:73:29: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   73 |    for (Cg=0; Cg+Cr<=i && Cg<=v[1].size(); Cg++)
      |                           ~~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...