結果

問題 No.714 回転寿司屋のシミュレート
ユーザー Pump0129Pump0129
提出日時 2018-07-16 22:33:24
言語 Java21
(openjdk 21)
結果
AC  
実行時間 329 ms / 2,000 ms
コード長 2,331 bytes
コンパイル時間 2,224 ms
コンパイル使用メモリ 79,644 KB
実行使用メモリ 46,428 KB
最終ジャッジ日時 2024-11-21 19:59:21
合計ジャッジ時間 11,235 ms
ジャッジサーバーID
(参考情報)
judge3 / judge5
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 125 ms
41,520 KB
testcase_01 AC 124 ms
40,800 KB
testcase_02 AC 146 ms
41,804 KB
testcase_03 AC 147 ms
41,708 KB
testcase_04 AC 189 ms
42,052 KB
testcase_05 AC 238 ms
42,864 KB
testcase_06 AC 283 ms
43,964 KB
testcase_07 AC 295 ms
46,396 KB
testcase_08 AC 329 ms
46,428 KB
testcase_09 AC 263 ms
44,832 KB
testcase_10 AC 261 ms
44,980 KB
testcase_11 AC 268 ms
43,580 KB
testcase_12 AC 265 ms
44,180 KB
testcase_13 AC 264 ms
43,992 KB
testcase_14 AC 262 ms
43,876 KB
testcase_15 AC 264 ms
43,952 KB
testcase_16 AC 263 ms
43,884 KB
testcase_17 AC 255 ms
43,888 KB
testcase_18 AC 267 ms
44,000 KB
testcase_19 AC 261 ms
43,880 KB
testcase_20 AC 259 ms
43,376 KB
testcase_21 AC 262 ms
44,060 KB
testcase_22 AC 236 ms
43,084 KB
testcase_23 AC 238 ms
43,264 KB
testcase_24 AC 227 ms
43,264 KB
testcase_25 AC 237 ms
43,124 KB
testcase_26 AC 237 ms
42,728 KB
testcase_27 AC 220 ms
42,940 KB
testcase_28 AC 223 ms
42,800 KB
testcase_29 AC 232 ms
43,076 KB
testcase_30 AC 124 ms
40,944 KB
testcase_31 AC 129 ms
41,180 KB
testcase_32 AC 131 ms
41,260 KB
testcase_33 AC 122 ms
41,096 KB
testcase_34 AC 112 ms
40,320 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

package net.ipipip0129.yukicoder.no714;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

class Main {

    protected static int MAX_DATA_SIZE = 53;

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        People[] peoples = new People[21];
        IDSystem id_sys = new IDSystem();

        int num = Integer.parseInt(scanner.nextLine());
        for (int i = 0; i < num; i++) {
            String line = scanner.nextLine();
            String[] string_data = line.split(" ");
            if (line.toCharArray()[0] == '0') {
                List<String> data_list = new ArrayList<>(Arrays.asList(string_data).subList(3, 3 + Integer.parseInt(string_data[2])));
                peoples[Integer.parseInt(string_data[1])] = new People(id_sys, data_list);
            } else if (line.toCharArray()[0] == '1') {
                int id = id_sys.getID(string_data[1]);
                int ans = -1;
                for (int j = 1; j < 21; j++) {
                    if (peoples[j] != null) {
                        if (peoples[j].req_process(id)){
                            ans = j;
                            break;
                        }
                    }
                }
                System.out.println(ans);
            } else if (line.toCharArray()[0] == '2') {
                peoples[Integer.parseInt(string_data[1])] = null;
            }
        }
    }
}

class People {
    private int[] req_list = new int[Main.MAX_DATA_SIZE];

    People(IDSystem id_sys, List<String> data_list) {
        for (String data : data_list) {
            req_list[id_sys.getID(data)]++;
        }
    }

    boolean req_process(int id) {
        if (req_list[id] != 0) {
            req_list[id]--;
            return true;
        }
        return false;
    }
}

class IDSystem {
    private static String[] string_data = new String[Main.MAX_DATA_SIZE];
    private static int next_id = 0;

    int getID(String data) {
        for (int i = 0; i < next_id; i++) {
            if (string_data[i].equals(data)) {
                return i;
            }
        }
        string_data[next_id] = data;
        next_id++;
        return next_id - 1;
    }
}
0