結果
問題 | No.714 回転寿司屋のシミュレート |
ユーザー |
![]() |
提出日時 | 2019-12-10 22:40:46 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 281 ms / 2,000 ms |
コード長 | 2,453 bytes |
コンパイル時間 | 2,399 ms |
コンパイル使用メモリ | 83,992 KB |
実行使用メモリ | 58,932 KB |
最終ジャッジ日時 | 2024-06-24 02:26:27 |
合計ジャッジ時間 | 10,672 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 35 |
ソースコード
import java.io.InputStream;import java.io.PrintWriter;import java.lang.reflect.Array;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.HashMap;import java.util.HashSet;import java.util.List;import java.util.Map;import java.util.Map.Entry;import java.util.PriorityQueue;import java.util.Scanner;import java.util.Set;import java.util.Stack;import java.util.TreeMap;import java.util.TreeSet;import static java.util.Comparator.*;public class Main {public static void main(String[] args) {PrintWriter out = new PrintWriter(System.out);Solver solver = new Solver(System.in, out);solver.solve();out.close();}}class Solver {Scanner sc;PrintWriter out;public Solver(InputStream in, PrintWriter out) {sc = new Scanner(in);this.out = out;}// ==================================================================Map<Integer, Map<String, Integer>> data = new TreeMap<>();public void solve() {int N = Integer.parseInt(sc.next());int cmd, no, wk;Integer cnt;boolean f;Map<String, Integer> map;String name;for (int i = 0; i < N; i++) {cmd = Integer.parseInt(sc.next());if(cmd == 0) {no = Integer.parseInt(sc.next());map = new HashMap<>();data.put(no, map);wk = Integer.parseInt(sc.next());// out.println("登録 席 = " + no + " ネタの数 = " + wk);for (int j = 0; j < wk; j++) {name = sc.next();cnt = map.get(name);if(cnt == null) map.put(name, 1);else map.put(name, cnt + 1);// out.println(" ネタ [" + name + "] = " + map.get(name));}} else if(cmd == 1) {name = sc.next();// out.println("回ってきた [" + name + "]");f = false;for(Integer key : data.keySet()) {map = data.get(key);cnt = map.get(name);// out.println(" 席 = " + key + " ネタの数 = " + cnt);if(cnt == null) continue;else if(cnt > 1) map.put(name, cnt - 1);else map.remove(name);out.println(key);f = true;break;}if(!f) out.println(-1);} else {no = Integer.parseInt(sc.next());// out.println("席 = " + no + " 会計へ");data.remove(no);}}}}