結果

問題 No.714 回転寿司屋のシミュレート
ユーザー Pump0129Pump0129
提出日時 2018-07-16 22:33:24
言語 Java21
(openjdk 21)
結果
AC  
実行時間 341 ms / 2,000 ms
コード長 2,331 bytes
コンパイル時間 4,475 ms
コンパイル使用メモリ 74,340 KB
実行使用メモリ 62,368 KB
最終ジャッジ日時 2023-08-14 01:59:55
合計ジャッジ時間 13,331 ms
ジャッジサーバーID
(参考情報)
judge13 / judge12
このコードへのチャレンジ(β)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 122 ms
55,700 KB
testcase_01 AC 123 ms
56,096 KB
testcase_02 AC 150 ms
56,128 KB
testcase_03 AC 163 ms
56,164 KB
testcase_04 AC 199 ms
56,196 KB
testcase_05 AC 254 ms
58,264 KB
testcase_06 AC 281 ms
59,712 KB
testcase_07 AC 304 ms
59,616 KB
testcase_08 AC 341 ms
60,000 KB
testcase_09 AC 274 ms
60,112 KB
testcase_10 AC 266 ms
62,368 KB
testcase_11 AC 261 ms
59,220 KB
testcase_12 AC 266 ms
59,380 KB
testcase_13 AC 258 ms
58,828 KB
testcase_14 AC 267 ms
59,456 KB
testcase_15 AC 261 ms
59,652 KB
testcase_16 AC 259 ms
57,720 KB
testcase_17 AC 264 ms
59,520 KB
testcase_18 AC 265 ms
59,612 KB
testcase_19 AC 259 ms
59,300 KB
testcase_20 AC 252 ms
59,488 KB
testcase_21 AC 262 ms
59,460 KB
testcase_22 AC 238 ms
58,780 KB
testcase_23 AC 227 ms
58,764 KB
testcase_24 AC 235 ms
59,100 KB
testcase_25 AC 239 ms
59,268 KB
testcase_26 AC 240 ms
58,952 KB
testcase_27 AC 209 ms
58,520 KB
testcase_28 AC 225 ms
58,392 KB
testcase_29 AC 240 ms
58,836 KB
testcase_30 AC 122 ms
55,880 KB
testcase_31 AC 130 ms
55,696 KB
testcase_32 AC 129 ms
55,692 KB
testcase_33 AC 121 ms
56,040 KB
testcase_34 AC 119 ms
56,292 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