結果
| 問題 |
No.765 ukuku 2
|
| コンテスト | |
| ユーザー |
tails
|
| 提出日時 | 2018-12-14 02:28:43 |
| 言語 | cLay (20241019-1) |
| 結果 |
AC
|
| 実行時間 | 72 ms / 3,000 ms |
| コード長 | 567 bytes |
| コンパイル時間 | 2,387 ms |
| コンパイル使用メモリ | 173,488 KB |
| 実行使用メモリ | 10,312 KB |
| 最終ジャッジ日時 | 2024-07-05 13:14:46 |
| 合計ジャッジ時間 | 5,053 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 48 |
ソースコード
char s[3d5];
ll n,t[2d5],u[2d5],v[2d5],h[128];
ll nib(ll a,ll b){
ll c=min(a,n-1-b)+1;
ll d=0;
while(d<c-1){
ll e=(c+d)/2;
if(t[a-e]-u[b+e]==(t[a]-u[b])*v[e]){
d=e;
}else{
c=e;
}
}
return d;
}
{
rd(s);
n=strlen(s);
{
Rand r;
h[0..127]=r.get();
ll d;
d=0; t[n-(1..n)]=d=d*3+h[s[n-(1..)]];
d=0; u[0..n-1]=d=d*3+h[s[0..]];
d=1; (v[0..n-1]=d, d*=3);
}
{
ll r=0;
rep(i,n*2-1){
ll a,b,d;
d=nib(a=(i+1)/2,b=i/2);
if(a-d>0) r>?=b+1-a+(d+nib(a-d-1,b+d))*2;
if(b+d<n-1) r>?=b+1-a+(d+nib(a-d,b+d+1))*2;
}
wt(r);
}
}
tails