結果
| 問題 |
No.465 PPPPPPPPPPPPPPPPAPPPPPPPP
|
| コンテスト | |
| ユーザー |
vjudge1
|
| 提出日時 | 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;
}
vjudge1