Submission #5910315


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){
        if(w%3!=0)continue;
        REP(l, s.size()+1){
            Rep(r, l+1, s.size()+1){
                if(r-l >= 3 && s.substr(r-3, 3) == "iwi") {
                    if(dp[l][r]==0)Rep(ri, r, s.size()+1){
                        dp[l][ri]=3;
                    }
                }
                
                if(dp[l][r]!=w)continue;

                if(s[r]=='i'){
                    if(l-2>=0)if(s.substr(l-2,2)=="iw"){
                        dp[l-2][r+1]=max(dp[l-2][r+1], dp[l][r]+3);
                        Rep(ri, r+1, s.size()+1){
                            dp[l-2][ri]=dp[l-2][r+1];
                        }
                    }
                }
            }

        }
    }
    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);
}

Submission Info

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

Judge Result

Set Name All
Score / Max Score 0 / 5
Status
WA × 7
Set Name Test Cases
All 00, 01, 02, 03, 04, 90, 91
Case Name Status Exec Time Memory
00 WA 282 ms 640 KB
01 WA 274 ms 640 KB
02 WA 278 ms 640 KB
03 WA 305 ms 640 KB
04 WA 238 ms 512 KB
90 WA 1 ms 256 KB
91 WA 1 ms 256 KB