結果
| 問題 | No.2906 Strange Online Judge |
| コンテスト | |
| ユーザー |
👑 |
| 提出日時 | 2024-09-12 21:43:04 |
| 言語 | Text (cat 8.3) |
| 結果 |
AC
|
| 実行時間 | 1 ms / 2,000 ms |
| コード長 | 1,355 bytes |
| コンパイル時間 | 74 ms |
| コンパイル使用メモリ | 6,684 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-09-19 17:21:42 |
| 合計ジャッジ時間 | 2,238 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 15 |
ソースコード
$0=1 # q = 1 # q: 文字列 P に含まれる"o"の文字数
#$1=0 # p = 0 # p: 文字列 P に含まれる"x"の文字数
#$2=0 # r = 0 # r: 結合済み文字列に含まれる"x"の文字数
#$3=0 # s = 0 # s: 結合済み文字列に含まれる"o"の文字数
#$4=0 # f = 0 # f: 文字列 P の末尾が "o" なら 0, "x" なら 1
while $0<=N # while q <= N: # 十分大きな文字列 P を計算する
$5=$0*K # p,q,f := q,q*K+p,1-f
$5=$5+$1
$1=$0
$0=$5
$4=1-$4
end # end
while $1>1 # while p > 1: # "o" の文字数が N 文字になるまで処理
$5=$0%$1 # p,q,f := q%p,p,1-f # P_{n+1},P_n から P_{n-1} を逆算する
$0=$1
$1=$5
$4=1-$4
$5=N-$3 # t := (N-s)//q # 何回繰り返しで文字列を追加できるか
$5=$5/$0
$6=$5*$1 # r,s := r+p*t,s+q*t # P の文字列を t 回追加
$2=$2+$6
$6=$5*$0
$3=$3+$6
if $3==N # if s == N:
$1=0 # p := 0
end # end
end # end
if $1==1 # if p == 1:
$4=1-$4 # f,r,s = 1-f,r+(q-K)*(N-s),N
$5=$0-K
$6=N-$3
$5=$5*$6
$2=$2+$5
end # end
$0=$2-$4 # return (r-f+N) # 末尾が "x" で終わる場合(f=1) は 1 を引いて取り除く
$0=$0+N
return $0