結果
| 問題 | 
                            No.714 回転寿司屋のシミュレート
                             | 
                    
| コンテスト | |
| ユーザー | 
                             | 
                    
| 提出日時 | 2018-10-11 00:08:47 | 
| 言語 | Ruby  (3.4.1)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 111 ms / 2,000 ms | 
| コード長 | 1,162 bytes | 
| コンパイル時間 | 356 ms | 
| コンパイル使用メモリ | 7,424 KB | 
| 実行使用メモリ | 12,416 KB | 
| 最終ジャッジ日時 | 2024-10-12 17:24:52 | 
| 合計ジャッジ時間 | 4,389 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge / judge5 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 35 | 
コンパイルメッセージ
Syntax OK
ソースコード
class Order
  attr_reader :name
  def initialize(name)
    @name = name
  end
  def ==(other)
    self.name == other.name
  end
end
class Customer
  def initialize(orders)
    @orders = orders
  end
  def has_order?(order)
    @orders.include?(order)
  end
  def delete_order(order)
    @orders.delete_at(@orders.find_index(order))
  end
end
def create_customer(sushi_neta_names)
  Customer.new(
    sushi_neta_names.map do |neta|
      Order.new(neta)
    end
  )
end
SEAT_MAX_NUM = 20
seat_list = Array.new(SEAT_MAX_NUM)
data_num = gets.to_i
data_num.times do
  data = gets.split
  if data[0] == '0'
    # 席に座る
    seat_number = data[1].to_i
    seat_list[seat_number] = create_customer(data[3..-1])
  elsif data[0] == '1'
    # 寿司を投入
    ate_customer_number = -1
    order = Order.new(data[1])
    seat_list.each_with_index do |customer, i|
      next if customer.nil?
      if customer.has_order?(order)
        customer.delete_order(order)
        ate_customer_number = i
        break
      end
    end
    puts ate_customer_number
  else
    # 退席する
    seat_number = data[1].to_i
    seat_list[seat_number] = nil
  end
end