Submission #5910501


Source Code Expand

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

int main() {
    string s;
    cin >> s;
    int const n = s.size();
    // [l, r)
    vector<vector<int>> dp(n + 1, vector<int>(n + 1, 0));
    for(int w = 0; w <= n; ++w) {
        for(int l = 0; l + w <= n; ++l) {
            for(int i = l; i <= l + w; ++i) {
                dp[l][l + w] = max(dp[l][l + w], dp[l][i] + dp[i][l + w]);
            }
            if(dp[l][l + w] != w) {
                continue;
            }
            for(int d = 0; d <= 3; ++d) {
                if(l - d < 0 || n < l + w + 3 - d) {
                    continue;
                }
                auto iwi = s.substr(l - d, d) + s.substr(l + w, 3 - d);
                if(iwi == "iwi") {
                    dp[l - d][l + w + 3 - d] = dp[l][l + w] + 3;
                }
            }
        }
    }

    int res = 0;
    for(int i = 0; i <= n; ++i) {
        for(int j = 0; j <= n; ++j) {
            res = max(dp[i][j], res);
        }
    }
    res /= 3;
    cout << res << endl;
}

Submission Info

Submission Time
Task I - イウィ
User Shun2019
Language C++14 (GCC 5.4.1)
Score 5
Code Size 1059 Byte
Status AC
Exec Time 8 ms
Memory 640 KB

Judge Result

Set Name All
Score / Max Score 5 / 5
Status
AC × 7
Set Name Test Cases
All 00, 01, 02, 03, 04, 90, 91
Case Name Status Exec Time Memory
00 AC 8 ms 640 KB
01 AC 8 ms 640 KB
02 AC 8 ms 640 KB
03 AC 8 ms 640 KB
04 AC 8 ms 512 KB
90 AC 1 ms 256 KB
91 AC 1 ms 256 KB