Submission #5910494


Source Code Expand

#include <bits/stdc++.h>
#include <vector>
#include <numeric>
#define PI 3.14159265358979323846
#define MAXINF (1e18L)
#define INF (1e9L)
#define EPS (1e-9)
#define MOD (1e9+7)
#define REP(i, n) for(int i=0;i<int(n);++i)
#define Rep(i,sta,n) for(int i=sta;i<n;i++)
#define RREP(i, n) for(int i=int(n)-1;i>=0;--i)
#define ALL(v) v.begin(),v.end()
#define FIND(v,x) (binary_search(ALL(v),(x)))
#define SORT(v) sort(ALL(v))
#define RSORT(v) sort(ALL(v));reverse(ALL(v))
#define DEBUG(x) cerr<<#x<<": "<<x<<endl;
#define DEBUG_VEC(v) cerr<<#v<<":";for(int i=0;i<v.size();i++) cerr<<" "<<v[i]; cerr<<endl
#define Yes(n) cout<<((n)?"Yes":"No")<<endl
#define YES(n) cout<<((n)?"YES":"NO")<<endl
#define pb push_back
#define fi first
#define se second
using namespace std;
template<class A>void pr(A a){cout << (a) << endl;}
template<class A,class B>void pr(A a,B b){cout << a << " "  ;pr(b);}
template<class A,class B,class C>void pr(A a,B b,C c){cout << a << " " ;pr(b,c);}
template<class A,class B,class C,class D>void pr(A a,B b,C c,D d){cout << a << " " ;pr(b,c,d);}
typedef long long ll;
typedef pair<int, int> pii;

int main(void)
{
    string s;
    cin >> s;
    vector<vector<int>> dp(s.size()+1, vector<int>(s.size()+1, 0));

    REP(w, s.size()+1){
        REP(l, s.size()+1){
            Rep(r, l+1, s.size()+1){
                for(int i = l; i <= r; ++i) {
                    dp[l][r] = max(dp[l][r], dp[l][i] + dp[i][r]);
                }
                if(dp[l][l + w] != w) {
                    continue;
                }
                for(int d = -2; d <= 1; ++d) {
                    if(l - d < 0 || s.size() < 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 ans = 0;
    REP(l, s.size()+1){
        REP(r, s.size()+1){
            ans=max(dp[l][r],ans);
            // cout << dp[l][r] << " ";
        }
        // cout << endl;
    }
    pr(ans/3);
}

Submission Info

Submission Time
Task I - イウィ
User Shun2019
Language C++14 (GCC 5.4.1)
Score 0
Code Size 2227 Byte
Status WA
Exec Time 1877 ms
Memory 768 KB

Judge Result

Set Name All
Score / Max Score 0 / 5
Status
AC × 2
WA × 5
Set Name Test Cases
All 00, 01, 02, 03, 04, 90, 91
Case Name Status Exec Time Memory
00 WA 1877 ms 768 KB
01 AC 1877 ms 640 KB
02 WA 1876 ms 640 KB
03 WA 1845 ms 640 KB
04 WA 1368 ms 512 KB
90 WA 1 ms 256 KB
91 AC 1 ms 256 KB