package yukicoder.sushi; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Scanner; public class Main { // 座席1 = guests[0] static List> seats = new ArrayList<>(); public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = Integer.parseInt(sc.next()); // 使わない for (int i = 0; i < 20; i++) { seats.add(new HashMap<>()); } while (sc.hasNext()) { String[] data = sc.next().split(" "); switch (data[0]) { case "0": // 来店 座る席 取る皿の数 取るネタ // 0 14 4 maguroakami hotatekai unagi maguroakami int seatNo = Integer.parseInt(data[1]); int num = Integer.parseInt(data[2]); for (int i = 3; i < num; i++) { String neta = data[i]; Map seat = seats.get(seatNo - 1); if (seat.get(neta) == null) { seat.put(neta, seat.get(neta) + 1); } else { seat.put(neta, 1); } } break; case "1": // 流れてくるネタ // 1 saamonnmottu for (int i = 0; i < seats.size(); i++) { Map seat = seats.get(i); String neta = data[1]; if (seat.get(neta) != null && seat.get(neta) > 0) { // 皿取った seat.put(neta, seat.get(neta) - 1); System.out.println(i + 1); break; } } // 誰も取らない System.out.println("-1"); break; case "2": // 会計 // 2 14 int seat_ = Integer.parseInt(data[1]); // 該当席の客データをリセット seats.set(seat_, new HashMap<>()); break; } } sc.close(); } }