結果

問題 No.714 回転寿司屋のシミュレート
ユーザー maimai
提出日時 2017-04-14 23:12:20
言語 Ruby
(3.3.0)
結果
WA  
実行時間 -
コード長 1,974 bytes
コンパイル時間 80 ms
コンパイル使用メモリ 7,552 KB
実行使用メモリ 12,672 KB
最終ジャッジ日時 2024-04-17 11:17:40
合計ジャッジ時間 4,205 ms
ジャッジサーバーID
(参考情報)
judge2 / judge5
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 WA -
testcase_01 WA -
testcase_02 WA -
testcase_03 WA -
testcase_04 WA -
testcase_05 WA -
testcase_06 WA -
testcase_07 WA -
testcase_08 WA -
testcase_09 WA -
testcase_10 WA -
testcase_11 WA -
testcase_12 WA -
testcase_13 WA -
testcase_14 WA -
testcase_15 WA -
testcase_16 WA -
testcase_17 WA -
testcase_18 WA -
testcase_19 WA -
testcase_20 WA -
testcase_21 WA -
testcase_22 WA -
testcase_23 WA -
testcase_24 WA -
testcase_25 WA -
testcase_26 WA -
testcase_27 WA -
testcase_28 WA -
testcase_29 WA -
testcase_30 WA -
testcase_31 WA -
testcase_32 WA -
testcase_33 WA -
testcase_34 WA -
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #

# 
# フォーマットチェック用🍣
# 
# フォーマットが正しいとWrongAnswerになる.
# 不適合ならRuntimeErrorになる.
# 

# このプログラムで見ないところ(別提出で検査済み)
# ・座席のダブルブッキング


line = gets.chomp!
abort "line 1: format" unless line=~/^\d+$/
numberOfQuery = line.to_i
abort "line 1: 2 <= numberOfQuery <= 5005" unless 2 <= numberOfQuery && numberOfQuery <= 5005

sushineta = {}

numberOfQuery.times{|lineNo|
    line = gets.chomp!
    abort "line #{lineNo+2}: end of line" unless line 
    abort "line #{lineNo+2}: format" unless line=~/^\S+.+\S+$/
    list = line.split
    type = list.shift
    case type
    when '0'
        abort "line #{lineNo+2}: size of parameters(nm)" unless 2 <= list.size
        n = list.shift.to_i # 座る座席
        m = list.shift.to_i # a number of 🍣
        
        abort "line #{lineNo+2}: size of parameters(sushi)" unless m == list.size
        abort "line #{lineNo+2}: 1 <= n <= 20" unless 1 <= n && n <= 20
        abort "line #{lineNo+2}: 0 <= m <= 10" unless 0 <= m && m <= 10
        
        list.each{|sushi|
            abort "line #{lineNo+2}: 寿司ネタはアルファベット表記で記述され最大15文字" unless sushi.size <= 15
            sushineta[sushi] = true
        }
    when '1'
        abort "line #{lineNo+2}: size of parameters" unless 1 == list.size
        sushi = list.shift
        sushineta[sushi] = true
        abort "line #{lineNo+2}: 寿司ネタはアルファベット表記で記述され最大15文字" unless sushi.size <= 15
    when '2'
        abort "line #{lineNo+2}: size of parameters" unless 1 == list.size
        n = list.shift.to_i
        abort "line #{lineNo+2}: 1 <= n <= 20" unless 1 <= n && n <= 20
    else
        abort "line #{lineNo+2}: unknown data type"
    end
}

abort "line **: too many lines" unless !gets
abort "line **: too many kind of sushi " unless sushineta.size <= 53
0