Submission #66963357
Source Code Expand
function Main(inputText) {
/** @type {String[][]} - スペース区切りと改行区切りをそのまま2次元配列に変えた状態 */
const input = inputText.trim().split("\n").map(row => row.split(" "));
/* ==== 本体 ==== */
const [N, Q] = input[0].map(n => +n);
const querys = [];
for (let i = 1; i <= Q; i++) {
if (+input[i][0] === 1) {
querys.push({
"type": 1,
"p": +input[i][1]
});
}
if (+input[i][0] === 2) {
querys.push({
"type": 2,
"p": +input[i][1],
"s": input[i][2]
});
}
if (+input[i][0] === 3) {
querys.push({
"type": 3,
"p": +input[i][1]
});
}
}
// Q個目のクエリのあとの鯖の値を、クエリを遡る形で求める
// - N個目のクエリのあとの鯖の値 = (N以下でtype=3な最大のindex)個目のあとのPC[p]の値
// - N個目のクエリのあとのPC[p]の値
// = (N以下でtype=1かつp=pな最大index)個目のあとの鯖の値
// + ↑以降N未満type=2かつp=pなそれぞれのindexについて、index個目のsの値
// - ただし、(0未満)個目のあとはどちらも空文字列
// っていう形で関数を作って再帰ラリーをする?
const getServerStrOnAfter = (idx) => {
// console.log(`getServerStrOnAfter(${idx})`);
for (let i = idx - 1; i >= 0; i--) {
if (querys[i].type === 3) {
return getPCStr({"pc_num": querys[i].p, "onAfter": i});
}
}
return "";
};
const getPCStr = (obj) => {
// console.log(`getPCstr(pc_num = ${obj.pc_num}, idx = ${obj.onAfter})`)
const pc_num = obj.pc_num;
const idx = obj.onAfter;
const additions = []; // ←type=2はここに入れておく
for (let i = idx - 1; i >= 0; i--) {
if (querys[i].type === 2 && querys[i].p === pc_num) {
additions.push(querys[i].s);
continue;
}
if (querys[i].type === 1 && querys[i].p === pc_num) {
additions.push(getServerStrOnAfter(i));
break;
}
}
let result = "";
while(additions.length > 0) {
result += additions.pop();
}
return result;
};
console.log(getServerStrOnAfter(Q));
}
/* ==== これを書かないといけないらしい ==== */
Main(require("fs").readFileSync("/dev/stdin", "utf8"));
Submission Info
| Submission Time | |
|---|---|
| Task | D - Conflict 2 |
| User | AXT_AyaKoto |
| Language | JavaScript (Node.js 18.16.1) |
| Score | 425 |
| Code Size | 2708 Byte |
| Status | AC |
| Exec Time | 398 ms |
| Memory | 148232 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 425 / 425 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt |
| All | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_random_00.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 01_random_10.txt, 01_random_11.txt, 01_random_12.txt, 01_random_13.txt, 01_random_14.txt, 01_random_15.txt, 02_random2_00.txt, 02_random2_01.txt, 02_random2_02.txt, 02_random2_03.txt, 02_random2_04.txt, 02_random2_05.txt, 02_random2_06.txt, 02_random2_07.txt, 02_random2_08.txt, 02_random2_09.txt, 02_random2_10.txt, 02_random2_11.txt, 02_random2_12.txt, 02_random2_13.txt, 02_random2_14.txt, 02_random2_15.txt, 03_random3_00.txt, 03_random3_01.txt, 03_random3_02.txt, 03_random3_03.txt, 04_random4_00.txt, 04_random4_01.txt, 05_random5_00.txt, 05_random5_01.txt, 06_handmade_00.txt, 06_handmade_01.txt, 06_handmade_02.txt, 06_handmade_03.txt, 06_handmade_04.txt, 06_handmade_05.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_00.txt | AC | 36 ms | 42700 KiB |
| 00_sample_01.txt | AC | 36 ms | 42520 KiB |
| 00_sample_02.txt | AC | 36 ms | 42696 KiB |
| 01_random_00.txt | AC | 319 ms | 49452 KiB |
| 01_random_01.txt | AC | 171 ms | 106196 KiB |
| 01_random_02.txt | AC | 202 ms | 123372 KiB |
| 01_random_03.txt | AC | 41 ms | 44668 KiB |
| 01_random_04.txt | AC | 143 ms | 89144 KiB |
| 01_random_05.txt | AC | 74 ms | 56552 KiB |
| 01_random_06.txt | AC | 43 ms | 46092 KiB |
| 01_random_07.txt | AC | 63 ms | 55068 KiB |
| 01_random_08.txt | AC | 138 ms | 88664 KiB |
| 01_random_09.txt | AC | 166 ms | 99552 KiB |
| 01_random_10.txt | AC | 145 ms | 90040 KiB |
| 01_random_11.txt | AC | 83 ms | 62584 KiB |
| 01_random_12.txt | AC | 133 ms | 85780 KiB |
| 01_random_13.txt | AC | 135 ms | 86300 KiB |
| 01_random_14.txt | AC | 170 ms | 103052 KiB |
| 01_random_15.txt | AC | 148 ms | 89328 KiB |
| 02_random2_00.txt | AC | 210 ms | 127912 KiB |
| 02_random2_01.txt | AC | 209 ms | 127184 KiB |
| 02_random2_02.txt | AC | 209 ms | 126928 KiB |
| 02_random2_03.txt | AC | 209 ms | 129076 KiB |
| 02_random2_04.txt | AC | 229 ms | 134684 KiB |
| 02_random2_05.txt | AC | 262 ms | 132144 KiB |
| 02_random2_06.txt | AC | 280 ms | 132436 KiB |
| 02_random2_07.txt | AC | 289 ms | 128504 KiB |
| 02_random2_08.txt | AC | 228 ms | 140768 KiB |
| 02_random2_09.txt | AC | 301 ms | 136436 KiB |
| 02_random2_10.txt | AC | 324 ms | 136748 KiB |
| 02_random2_11.txt | AC | 232 ms | 141700 KiB |
| 02_random2_12.txt | AC | 246 ms | 144992 KiB |
| 02_random2_13.txt | AC | 362 ms | 143988 KiB |
| 02_random2_14.txt | AC | 333 ms | 148232 KiB |
| 02_random2_15.txt | AC | 336 ms | 147248 KiB |
| 03_random3_00.txt | AC | 394 ms | 145096 KiB |
| 03_random3_01.txt | AC | 396 ms | 144468 KiB |
| 03_random3_02.txt | AC | 398 ms | 144612 KiB |
| 03_random3_03.txt | AC | 372 ms | 141740 KiB |
| 04_random4_00.txt | AC | 394 ms | 144440 KiB |
| 04_random4_01.txt | AC | 396 ms | 144308 KiB |
| 05_random5_00.txt | AC | 198 ms | 138872 KiB |
| 05_random5_01.txt | AC | 206 ms | 139432 KiB |
| 06_handmade_00.txt | AC | 37 ms | 42796 KiB |
| 06_handmade_01.txt | AC | 40 ms | 45796 KiB |
| 06_handmade_02.txt | AC | 191 ms | 122720 KiB |
| 06_handmade_03.txt | AC | 193 ms | 130720 KiB |
| 06_handmade_04.txt | AC | 192 ms | 125332 KiB |
| 06_handmade_05.txt | AC | 195 ms | 128820 KiB |