結果
問題 | 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" なら 1while $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-$4end # endwhile $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+$6if $3==N # if s == N:$1=0 # p := 0end # endend # endif $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+$5end # end$0=$2-$4 # return (r-f+N) # 末尾が "x" で終わる場合(f=1) は 1 を引いて取り除く$0=$0+Nreturn $0