結果

問題 No.1109 調の判定
コンテスト
ユーザー kou_kkk
提出日時 2026-04-26 09:05:12
言語 F#
(F# 10.0)
コンパイル:
fsharp_c _filename_
実行:
/usr/bin/dotnet_wrap
結果
AC  
実行時間 418 ms / 2,000 ms
コード長 443 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 7,430 ms
コンパイル使用メモリ 209,264 KB
実行使用メモリ 37,216 KB
最終ジャッジ日時 2026-04-26 09:05:45
合計ジャッジ時間 25,104 ms
ジャッジサーバーID
(参考情報)
judge1_0 / judge3_1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 43
権限があれば一括ダウンロードができます
コンパイルメッセージ
  復元対象のプロジェクトを決定しています...
  /home/judge/data/code/main.fsproj を復元しました (1.22 秒)。
  main -> /home/judge/data/code/bin/Release/net10.0/main.dll
  main -> /home/judge/data/code/bin/Release/net10.0/publish/

ソースコード

diff #
raw source code

let cMajor = [| 0; 2; 4; 5; 7; 9; 11 |]

let getScale key =
    cMajor
    |> Array.map ((+) key >> fun n -> n % 12)

let scales =
    [ 0 .. 11 ]
    |> List.map getScale

let _ = stdin.ReadLine()

let ts =
    stdin.ReadLine().Split()
    |> Array.map int

let fn1 scale =
    ts
    |> Array.forall (fun t -> Array.contains t scale)

scales
|> List.filter fn1
|> fun arr ->
    if arr.Length = 1 then arr.[0].[0]
    else -1
|> printfn "%d"
0