Submission #333488

# Submission time Handle Problem Language Result Execution time Memory
333488 2020-12-06T13:19:24 Z Sho10 Miners (IOI07_miners) C++14
100 / 100
71 ms 1388 KB
#include <bits/stdc++.h> //Andrei Alexandru a.k.a Sho10
#define ll long long
#define double long double
#pragma GCC optimize("O3")
#pragma GCC optimize("Ofast")
#define all(a) (a).begin(), (a).end()
#define f first
#define s second
#define pb push_back
#define mp make_pair
#define pi pair
#define rc(s) return cout<<s,0
#define endl '\n'
#define mod 1000007
#define PI 3.14159265359
#define MAXN 100005
#define INF 1000000005
#define LINF 1000000000000000005ll
#define CODE_START  ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
ll n,dp[5][5][5][5][5],a[100005];
string s;
ll check(ll f,ll s,ll t){
ll cnt=0;
for(ll i=1;i<=3;i++)
{
    if(f==i||s==i||t==i){
        cnt++;
    }
}
return cnt;
}
int32_t main(){
CODE_START;
cin>>n;
cin>>s;
for(ll i=0;i<s.size();i++)
{
if(s[i]=='M'){
    a[i+1]=1;
}else if(s[i]=='F'){
a[i+1]=2;
}else if(s[i]=='B'){
a[i+1]=3;
}
}
for(ll x=n+1;x>=1;x--)
{
    for(ll i=0;i<4;i++){
        for(ll j=0;j<4;j++){
            for(ll k=0;k<4;k++){
                for(ll l=0;l<4;l++){
                    if(x==n+1){
                        dp[x%2][i][j][k][l]=0;
                    }else {
                    dp[x%2][i][j][k][l]=max(check(a[x],i,j)+dp[(x%2)^1][a[x]][i][k][l],check(a[x],k,l)+dp[(x%2)^1][i][j][a[x]][k]);
                }
            }
        }
    }
}
}
cout<<dp[1][0][0][0][0]<<endl;
}



Compilation message

miners.cpp: In function 'int32_t main()':
miners.cpp:37:13: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   37 | for(ll i=0;i<s.size();i++)
      |            ~^~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 364 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 9 ms 620 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 22 ms 620 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 55 ms 1260 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 71 ms 1388 KB Output is correct