結果

問題 No.701 ひとりしりとり
ユーザー tak
提出日時 2018-06-16 08:52:22
言語 F#
(F# 4.0)
結果
AC  
実行時間 482 ms / 2,000 ms
コード長 1,471 bytes
コンパイル時間 14,491 ms
コンパイル使用メモリ 206,896 KB
実行使用メモリ 54,272 KB
最終ジャッジ日時 2024-06-30 16:08:06
合計ジャッジ時間 11,073 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 12
権限があれば一括ダウンロードができます
コンパイルメッセージ
  復元対象のプロジェクトを決定しています...
  /home/judge/data/code/main.fsproj を復元しました (357 ms)。
MSBuild のバージョン 17.9.6+a4ecab324 (.NET)
  main -> /home/judge/data/code/bin/Release/net8.0/main.dll
  main -> /home/judge/data/code/bin/Release/net8.0/publish/

ソースコード

diff #
プレゼンテーションモードにする

let genSafeWord =
let rec num2alp num =
match num with
| 0 -> ""
| num ->
let alpSize = ('z' |> int) - ('a' |> int)
let alpOffset = ('a' |> int) - 1
let n =
match num%alpSize with
| 0 -> alpSize
| n -> n
let s = (n + alpOffset) |> char |> string
match n with
| x when x = num -> s
| x -> num2alp((num - n) / alpSize) + s
let cnt=ref 1
let genWord startCharacter =
let newWord = startCharacter + (num2alp cnt.Value)
incr cnt
newWord
(fun (preWord:string) ->
let preLastCharacter = preWord.ToCharArray() |> Array.last |> string
let newWord = genWord preLastCharacter
match newWord.ToCharArray()|> Array.last |> string with
| "n" -> genWord preLastCharacter
| _ -> newWord)
let genOutWord (preWord:string) =
let preLastCharacter = preWord.ToCharArray() |> Array.last |> string
preLastCharacter + "n"
let n = stdin.ReadLine() |> int
Seq.unfold(fun (word,cnt)->
match cnt = (n-1) with
| true ->
let nextWord = genOutWord word
Some(word, (nextWord, cnt + 1))
| _ ->
let nextWord = genSafeWord word
Some(word, (nextWord, cnt + 1))) ("a", 0)
|> Seq.skip 1
|> Seq.take n
|> Seq.iter(printfn "%s")
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0