結果

問題 No.273 回文分解
ユーザー latte0119
提出日時 2015-10-26 00:36:06
言語 C++11(廃止可能性あり)
(gcc 13.3.0)
結果
WA  
実行時間 -
コード長 714 bytes
コンパイル時間 1,660 ms
コンパイル使用メモリ 164,364 KB
実行使用メモリ 5,248 KB
最終ジャッジ日時 2024-12-23 12:03:01
合計ジャッジ時間 2,816 ms
ジャッジサーバーID
(参考情報)
judge1 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 26 WA * 6
権限があれば一括ダウンロードができます

ソースコード

diff #

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

#define int long long
#define rep(i,n) for(int i=0;i<(n);i++)
#define REP(i,a,b) for(int i=(a);i<(b);i++)
#define pb push_back
#define all(v) (v).begin(),(v).end()

signed main(){
    string s,latte;
    cin>>latte;

    rep(i,latte.size()){
        if(i)s+="*";
        s+=latte[i];
    }

    vector<int>vec;
    rep(i,s.size()){
        int len=0;
        while(i-len>=0&&i+len<s.size()&&s[i-len]==s[i+len])len++;
        if(s[i]=='*')vec.pb((len-1)/2*2);
        else vec.pb((len-1)/2*2+1);
    }

    sort(all(vec));
    reverse(all(vec));
    if(vec[0]==latte.size()){
        cout<<max(vec[0]-2,vec[1])<<endl;
    }
    else cout<<vec[0]<<endl;
    return 0;
}
0