結果
| 問題 |
No.714 回転寿司屋のシミュレート
|
| コンテスト | |
| ユーザー |
Rim_EarthLights
|
| 提出日時 | 2019-03-08 22:12:48 |
| 言語 | Java (openjdk 23) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 2,058 bytes |
| コンパイル時間 | 2,384 ms |
| コンパイル使用メモリ | 83,664 KB |
| 実行使用メモリ | 56,052 KB |
| 最終ジャッジ日時 | 2024-06-23 15:08:18 |
| 合計ジャッジ時間 | 8,165 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | RE * 35 |
ソースコード
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
class Main {
public static void main(String[] args) {
// 客リスト
List<Customer> customers = new ArrayList<Customer>();
// 命令数
Scanner sc = new Scanner(System.in);
int exec = Integer.parseInt(sc.nextLine());
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 = 3; p < data.length; p++) {
list.add(data[p]);
}
// 客リストにぶっこむ
customers.add(new Customer(table_id, list));
break;
// ネタ流し
case 1:
// テーブル番号の若い順に食べるのでソート
customers.sort((x, y) -> x.getTableId() - y.getTableId());
Boolean flg = false;
for (Customer c : customers) {
// ほしいものリストにネタがあった
if(c.getNetaList().contains(data[1])){
// ほしいものリストからひとつ削除してテーブル番号出力
c.getNetaList().remove(data[1]);
System.out.println(c.getTableId());
flg = true;
break;
}
}
if(!flg) {
System.out.println("-1");
}
break;
// 退店
case 2:
for (Customer cc : customers) {
if(cc.getTableId() == Integer.parseInt(data[1])){
// 客リストから客削除
customers.remove(cc);
break;
}
}
break;
}
}
sc.close();
}
}
// 客クラス
class Customer{
private int table_id;
private List<String> want_list;
Customer(int id, List<String> list){
this.want_list = list;
this.table_id = id;
}
int getTableId(){
return this.table_id;
}
List<String> getNetaList(){
return this.want_list;
}
}
Rim_EarthLights