/ SeriousOJ /

Record Detail

Time Exceeded


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 532.0 KiB
#2 Accepted 10ms 640.0 KiB
#3 Accepted 291ms 624.0 KiB
#4 Accepted 769ms 960.0 KiB
#5 Time Exceeded ≥1520ms ≥200.09 MiB
#6 Time Exceeded ≥1519ms ≥199.965 MiB

Code

#include<bits/stdc++.h>
using namespace std;

#define endl "\n"
#define F first
#define S second
#define pii pair<int, int>
#define sz(x) (int) (x.size())

string tmp = "aeiou";
map<char, int> mp;


const int N = 2e5 + 10;
const int mod = 1e9 + 7;
const int INF = 1e18 + 10;

int n; string s;
vector<vector<vector<int>>> dp;

int magic(int ind, int mask, int prv) {
    if(ind == n) return 0;

    int &ans = dp[ind][mask][prv];
    if(~ans) return ans;
    ans = INF;

    for(int op = 0; op <= 4; op++) {
        int cur = (mp[s[ind]] + op) % 5, f = (cur != prv);
        if(f && (mask & (1LL << cur))) continue;
        ans = min(ans, op + magic(ind + 1, mask | (1LL << cur), cur));
    }

    return ans;
}


void solve() {
    cin>>n>>s;
    dp = vector<vector<vector<int>>>(n, vector<vector<int>>(35, vector<int>(6, -1)));
    cout<<magic(0, 0, 5)<<endl;
}

signed main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    mp['a'] = 0;
    mp['e'] = 1;
    mp['i'] = 2;
    mp['o'] = 3;
    mp['u'] = 4;

    int t = 1; cin>>t;
    for(int tc = 1; tc <= t; tc++) {
        // cout<<"Case "<<tc<<":";
        solve();
    }
}

Information

Submit By
Type
Submission
Problem
P1140 Vowel arrangement
Language
C++17 (G++ 13.2.0)
Submit At
2025-06-14 09:41:21
Judged At
2025-06-14 09:41:21
Judged By
Score
10
Total Time
≥1520ms
Peak Memory
≥200.09 MiB