結果

問題 No.1512 作文
ユーザー ytft
提出日時 2021-08-13 17:03:29
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 744 bytes
コンパイル時間 1,646 ms
コンパイル使用メモリ 171,860 KB
実行使用メモリ 6,824 KB
最終ジャッジ日時 2024-10-03 07:25:09
合計ジャッジ時間 5,479 ms
ジャッジサーバーID
(参考情報)
judge2 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 14 WA * 12 RE * 12
権限があれば一括ダウンロードができます

ソースコード

diff #

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



int main(){
    int N;
    cin>>N;
    vector<vector<int>> memo(26,vector<int>(26));
    for(int i=0;i<N;i++){
        string s;
        cin>>s;
        for(int j=1;j<s.size();j++){
            if(s[i-1]>s[i]){
                goto end;
            }
        }
        if(s[0]==s[s.size()-1]){
            memo[s[0]-'a'][s[s.size()-1]-'a']+=s.size();
        }else{
            memo[s[0]-'a'][s[s.size()-1]-'a']=max(memo[s[0]-'a'][s[s.size()-1]-'a'],(int)(s.size()));
        }
        end:{}
    }
    vector<int> dp(26);
    for(int i=0;i<26;i++){
        for(int j=0;j<i;j++){
            dp[i]=max(dp[i],dp[j]+memo[j][i]);
        }
        dp[i]+=memo[i][i];
    }
    cout<<dp[25]<<endl;
}
0