結果
問題 |
No.465 PPPPPPPPPPPPPPPPAPPPPPPPP
|
ユーザー |
![]() |
提出日時 | 2025-07-26 20:31:03 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
RE
|
実行時間 | - |
コード長 | 826 bytes |
コンパイル時間 | 1,535 ms |
コンパイル使用メモリ | 163,856 KB |
実行使用メモリ | 28,116 KB |
最終ジャッジ日時 | 2025-07-26 20:31:10 |
合計ジャッジ時間 | 5,842 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 2 RE * 18 |
ソースコード
#include<bits/stdc++.h> using namespace std; using ll=long long; const int N=5005; string s; int n; bool fl[N][N]; int f1[N],f2[N]; ll ans; int main(){ cin>>s; n=s.size(); s="0"+s; for(int i=1;i<=n+1;++i)fl[i][i-1]=1; for(int i=1;i<=n;++i){ fl[i][i]=1; } for(int len=2;len<=n;++len){ for(int l=1;l+len-1<=n;++l){ int r=l+len-1; if(s[l]!=s[r])continue; fl[l][r]=fl[l+1][r-1]; } } for(int i=1;i<=n;++i){ if(!fl[1][i])continue; for(int j=1;i+j<=n;++j){ if(fl[i+1][i+j]){ f1[i+j]++; } } } for(int i=n;i;--i){ f2[i]=f2[i+1]; if(fl[i][n])++f2[i]; } for(int i=1;i<=n;++i){ ans+=1ll*f1[i]*f2[i+2]; } cout<<ans; return 0; }