제출 #1120041

#제출 시각아이디문제언어결과실행 시간메모리
1120041AndrijaMGrowing Vegetable is Fun 3 (JOI19_ho_t3)C++14
100 / 100
119 ms164876 KiB
#include<bits/stdc++.h> using namespace std; #define int long long ///#define endl '\n' const int maxn=400+10; int dp[maxn][maxn][maxn][3];/// red,green,yellow and what is the last color int p[maxn][3]; signed main() { ///freopen("detonator.in","r",stdin); ///freopen("detonator.out","w",stdout); ios::sync_with_stdio(false); int n; cin>>n; string s; cin>>s; vector<int>r; vector<int>g; vector<int>y; for(int i=0;i<n;i++) { if(s[i]=='R') { r.push_back(i+1); } if(s[i]=='G') { g.push_back(i+1); } if(s[i]=='Y') { y.push_back(i+1); } p[i+1][0]=r.size(); p[i+1][1]=g.size(); p[i+1][2]=y.size(); } for(int i=0;i<=r.size();i++) { for(int j=0;j<=g.size();j++) { for(int k=0;k<=y.size();k++) { if(i==0 && j==0 && k==0)continue; for(int idx=0;idx<3;idx++) { dp[i][j][k][idx]=1e9; } int s=i+k+j; if(i!=0) { dp[i][j][k][0]=min(dp[i-1][j][k][1],dp[i-1][j][k][2])+((r[i-1]+max(0LL,j-p[r[i-1]][1])+max(0LL,k-p[r[i-1]][2]))-s); } if(j!=0) { dp[i][j][k][1]=min(dp[i][j-1][k][0],dp[i][j-1][k][2])+((g[j-1]+max(0LL,i-p[g[j-1]][0])+max(0LL,k-p[g[j-1]][2]))-s); } if(k!=0) { dp[i][j][k][2]=min(dp[i][j][k-1][0],dp[i][j][k-1][1])+((y[k-1]+max(0LL,i-p[y[k-1]][0])+max(0LL,j-p[y[k-1]][1]))-s); } } } } int ans = *min_element(dp[r.size()][g.size()][y.size()], dp[r.size()][g.size()][y.size()] + 3); if(ans>=1e9) { cout<<-1<<endl; } else { cout<<ans<<endl; } return 0; }

컴파일 시 표준 에러 (stderr) 메시지

joi2019_ho_t3.cpp: In function 'int main()':
joi2019_ho_t3.cpp:43:18: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   43 |     for(int i=0;i<=r.size();i++)
      |                 ~^~~~~~~~~~
joi2019_ho_t3.cpp:45:22: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   45 |         for(int j=0;j<=g.size();j++)
      |                     ~^~~~~~~~~~
joi2019_ho_t3.cpp:47:26: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   47 |             for(int k=0;k<=y.size();k++)
      |                         ~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...