Submission #552860

# Submission time Handle Problem Language Result Execution time Memory
552860 2022-04-24T08:04:34 Z Mahmudul_Kabir Miners (IOI07_miners) C++14
100 / 100
218 ms 210856 KB
/*
    
    Note        :            
 
    Link        :       
 
    Boka hoye gelum...
*/
 
#include "bits/stdc++.h"
 
#define sp <<" "
#define el <<"\n"
#define S second
#define F first
#define pb push_back
#define all(ar) ar.begin(),ar.end() 
#define pii pair<ll,ll> 
 
 
using namespace std;
using ll = long long;
using ld = long double;

const ll mod = 1000000007;
const ll oo = 3372036000000000;
const ll si = 100005;

ll mao[100001][4][4][4][4],n; 
string s; 
vector<int> man;  

ll point(ll a,ll b,ll c){
    ll ans = 3; 
    if(a == 0 || b == 0){
        if(a == 0) ans--; 
        if(b == 0) ans--; 
        if(b == c) ans--; 
        return ans; 
    }
    if(a == b && b == c) ans = 1; 
    else if(a == b) ans = 2; 
    else if(a == c) ans = 2; 
    else if(b == c) ans = 2; 
    return ans; 
}

ll dp(ll i, ll a1, ll a2, ll b1, ll b2){
    if(i == n) return 0; 
    if(mao[i][a1][a2][b1][b2] == -1){
        ll ans = 0, x = man[i]; 
        ans = max(dp(i + 1, a2, x, b1, b2) + point(a1,a2,x), dp(i + 1, a1, a2, b2, x) + point(b1,b2,x));
        mao[i][a1][a2][b1][b2] = ans;
    }
    return mao[i][a1][a2][b1][b2]; 
}

signed main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    /*
#ifndef ONLINE_JUDGE
    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);
#endif
//*/ 
    cin>>n>>s;  
    ll i = 0; 
    for(char r: s){
        if(r == 'F') man.pb(1); 
        else man.pb((r == 'M' ? 2 : 3)); 
    }  
    memset(mao,-1,sizeof(mao)); 
    cout<<dp(0,0,0,0,0) el;
    return 0;
}
/*
    check for: 
        *missed a break, continue ? 
        *corner cases, n = 1?
        *overflow.
        *unnecessary logics.
        *impreciseness caused by double or long double. 
 
*/

Compilation message

miners.cpp: In function 'int main()':
miners.cpp:68:8: warning: unused variable 'i' [-Wunused-variable]
   68 |     ll i = 0;
      |        ^
# Verdict Execution time Memory Grader output
1 Correct 79 ms 200780 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 80 ms 200576 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 80 ms 200612 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 82 ms 200592 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 92 ms 200584 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 99 ms 200664 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 83 ms 200780 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 87 ms 201216 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 90 ms 201640 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 130 ms 203252 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 174 ms 208388 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 218 ms 210856 KB Output is correct