Submission #552833

# Submission time Handle Problem Language Result Execution time Memory
552833 2022-04-24T06:39:11 Z Mahmudul_Kabir Miners (IOI07_miners) C++14
66 / 100
229 ms 210740 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[si][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--; 
        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; 
    man.resize(n); 
    ll i = 0; 
    for(char r: s){
        if(r == 'F') man[i++] = 1; 
        else man[i++] = (r == 'M' ? 2 : 3); 
    }
    memset(mao,-1,sizeof(mao));  
    cout<<dp(0,0,0,0,0); 
    return 0;
}
/*
    check for: 
        *missed a break, continue ? 
        *corner cases, n = 1?
        *overflow.
        *unnecessary logics.
        *impreciseness caused by double or long double. 
 
*/
# Verdict Execution time Memory Grader output
1 Incorrect 89 ms 200652 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 87 ms 200628 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 81 ms 200624 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 91 ms 200608 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 91 ms 200640 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 94 ms 200652 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 80 ms 200864 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 84 ms 201168 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 105 ms 201632 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 128 ms 203152 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 161 ms 208280 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 229 ms 210740 KB Output is correct