Submission #1117451

#TimeUsernameProblemLanguageResultExecution timeMemory
1117451trinhvtuanMiners (IOI07_miners)C++17
100 / 100
496 ms118340 KiB
#include <bits/stdc++.h> using namespace std; int c,d,x,y,z,n; int i,j,k; typedef pair<int,int>i2; string s; int a[200005],f[200005][4][4][4][4]; long long dp(int id,i2 x,i2 y) { if (id>n) return 0; if (f[id][x.first+1][x.second+1][y.first+1][y.second+1]!=-1) return f[id][x.first+1][x.second+1][y.first+1][y.second+1]; vector<int>b; int d=0; b.push_back(x.first); b.push_back(x.second); b.push_back(a[id]); sort(b.begin(),b.end()); d=1; for (int i=1;i<b.size();i++) if (b[i]!=b[i-1]) d++; if (b[0]==-1) d--; long long ans=dp(id+1,{x.second,a[id]},y)+d; b.clear(); b.push_back(y.first); b.push_back(y.second); b.push_back(a[id]); sort(b.begin(),b.end()); d=1; for (int i=1;i<b.size();i++) if (b[i]!=b[i-1]) d++; if (b[0]==-1) d--; ans=max(ans,dp(id+1,x,{y.second,a[id]})+d); return f[id][x.first+1][x.second+1][y.first+1][y.second+1]=ans; } int main() { // freopen("MINERS.INP", "r" ,stdin); // freopen("MINERS.OUT", "w" ,stdout); // freopen("tongab.inp", "r" ,stdin); // freopen("tongab.txt", "w" ,stdout); ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n; for (int i=1;i<=n;i++) for (int x1=0;x1<=3;x1++) for (int x2=0;x2<=3;x2++) for (int y1=0;y1<=3;y1++) for (int y2=0;y2<=3;y2++) f[i][x1][x2][y1][y2]=-1; cin>>s; s='0'+s; for (int i=1;i<=n;i++) if (s[i]=='M') a[i]=0; else if (s[i]=='B') a[i]=1; else a[i]=2; c=dp(1,{-1,-1},{-1,-1}); cout<<c; }

Compilation message (stderr)

miners.cpp: In function 'long long int dp(int, i2, i2)':
miners.cpp:19:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   19 |     for (int i=1;i<b.size();i++)
      |                  ~^~~~~~~~~
miners.cpp:29:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   29 |     for (int i=1;i<b.size();i++)
      |                  ~^~~~~~~~~
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...