結果
| 問題 |
No.714 回転寿司屋のシミュレート
|
| コンテスト | |
| ユーザー |
Rim_EarthLights
|
| 提出日時 | 2019-03-08 20:06:52 |
| 言語 | Java (openjdk 23) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 2,308 bytes |
| コンパイル時間 | 3,826 ms |
| コンパイル使用メモリ | 93,204 KB |
| 実行使用メモリ | 56,324 KB |
| 最終ジャッジ日時 | 2024-06-23 15:05:05 |
| 合計ジャッジ時間 | 9,402 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | RE * 35 |
ソースコード
import java.util.*;
public class Main {
public static void main(String[] args) {
// 客リスト作成
List<Customer> customers = new ArrayList<Customer>();
// 命令数取得
Scanner sc = new Scanner(System.in);
int exec = sc.nextInt();
for(int i = 0; i < exec; i++) {
// 命令取得
// 0[入店] [テーブル番号] [食べたいネタ数] [ネタ] [ネタ]...
// 1[流す] [ネタ]
// 2[退店] [テーブル番号]
sc = new Scanner(System.in);
String[] data = sc.nextLine().split(" ");
// 1つ目を取得して命令種類を決める
int j = Integer.parseInt(data[0]);
switch(j) {
// 入店
case 0:
// テーブル番号
int table_id = Integer.parseInt(data[1]);
// 食べたいものリスト作成
List<String> list = new ArrayList<String>();
for(int p = 2; p < data.length; p++) {
list.add(data[p]);
}
// 客をリストに突っ込む
customers.add(new Customer(table_id, list));
break;
// ネタを流す
case 1:
// 客リストをテーブル番号の若い順でソートする
customers.sort((x, y) -> x.table_id - y.table_id);
Boolean flg = false;
// 客リストから客を一人ずつ抜き出す
for (Customer c : customers) {
// 客のほしいものリストに流したネタがあった
if(c.want_list.contains(data[1])){
// 客のほしいものリストからネタを一つ削除
c.want_list.remove(data[1]);
// 食べた客のテーブル番号を出力
System.out.println(c.table_id);
flg = true;
break;
}
}
// もしだれも食べなかったら
if(!flg) {
// -1を出力
System.out.println("-1");
}
break;
// 退店
case 2:
// 客リストから客を一人ずつ抜き出す
for (Customer c : customers) {
// 客のテーブル番号が一致したら
if(c.table_id == Integer.parseInt(data[1])){
// その客を退店させる(リストから削除する)
customers.remove(c);
break;
}
}
break;
}
}
}
}
// 客クラス
class Customer{
// テーブル番号とほしいものリスト
int table_id;
List<String> want_list;
Customer(int id, List<String> list){
want_list = list;
this.table_id = id;
}
}
Rim_EarthLights