結果

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

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 129 ms
54,268 KB
testcase_01 AC 132 ms
54,116 KB
testcase_02 AC 146 ms
54,364 KB
testcase_03 AC 159 ms
54,512 KB
testcase_04 AC 188 ms
54,684 KB
testcase_05 AC 251 ms
54,804 KB
testcase_06 AC 299 ms
57,248 KB
testcase_07 AC 307 ms
58,252 KB
testcase_08 AC 346 ms
58,548 KB
testcase_09 AC 280 ms
58,132 KB
testcase_10 AC 268 ms
58,008 KB
testcase_11 AC 271 ms
57,036 KB
testcase_12 AC 280 ms
57,188 KB
testcase_13 AC 269 ms
56,900 KB
testcase_14 AC 284 ms
57,228 KB
testcase_15 AC 267 ms
57,424 KB
testcase_16 AC 266 ms
57,156 KB
testcase_17 AC 266 ms
56,892 KB
testcase_18 AC 273 ms
57,316 KB
testcase_19 AC 265 ms
57,320 KB
testcase_20 AC 265 ms
57,208 KB
testcase_21 AC 267 ms
57,316 KB
testcase_22 AC 233 ms
56,720 KB
testcase_23 AC 236 ms
56,772 KB
testcase_24 AC 228 ms
56,784 KB
testcase_25 AC 246 ms
56,828 KB
testcase_26 AC 234 ms
54,684 KB
testcase_27 AC 224 ms
58,888 KB
testcase_28 AC 240 ms
55,076 KB
testcase_29 AC 235 ms
54,752 KB
testcase_30 AC 135 ms
54,132 KB
testcase_31 AC 136 ms
54,124 KB
testcase_32 AC 139 ms
53,924 KB
testcase_33 AC 128 ms
54,100 KB
testcase_34 AC 115 ms
53,112 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