結果

問題 No.714 回転寿司屋のシミュレート
ユーザー Rim_EarthLightsRim_EarthLights
提出日時 2023-05-10 17:43:14
言語 TypeScript
(5.7.2)
結果
WA  
実行時間 -
コード長 1,663 bytes
コンパイル時間 9,526 ms
コンパイル使用メモリ 229,988 KB
実行使用メモリ 49,672 KB
最終ジャッジ日時 2024-12-31 16:49:31
合計ジャッジ時間 12,541 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 5 WA * 30
権限があれば一括ダウンロードができます

ソースコード

diff #

"use strict";
import { readFileSync } from "fs";

let Users: User[] = [];

const main = (arg: string) => {
  const input = arg
    .trim()
    .split("\n")
    .map((i) => i.split(" "));

  // 一行目は破棄する
  input.shift();

  input.map((i) => {
    const command = i[0];
    switch (command) {
      case "0": {
        // 着席
        const table = Number(i[1]);
        const favorite = i.splice(3);
        regist(table, favorite);
        break;
      }
      case "1": {
        // ネタを流す
        const neta = i[1];
        eat(neta);
        break;
      }
      case "2": {
        // 退席
        const table = Number(i[1]);
        remove(table);
        break;
      }
      default: {
        break;
      }
    }
  });
};

const regist = (table: number, favorite: string[]) => {
  Users.push({ table, favorite });
  Users = Users.sort((u) => u.table);
};

const remove = (table: number) => {
  Users = Users.filter((u) => u.table !== table);
};

const eat = (favorite: string) => {
  for (const u of Users) {
    const idx = u.favorite.findIndex((u) => u === favorite);
    if (idx > -1) {
      u.favorite.splice(idx, 1);
      console.log(u.table);
      return;
    }
  }
  console.log(-1);
};

interface User {
  table: number;
  favorite: string[];
}

// debug
// main(
//   [
//     "11",
//     "1 toro",
//     "1 unagi",
//     "0 14 4 maguroakami hotatekai unagi maguroakami",
//     "1 saamonnmottu",
//     "1 unagi",
//     "1 unagi",
//     "1 maguro",
//     "1 kouika",
//     "1 maguroakami",
//     "1 maguroakami",
//     "2 14",
//   ].join("\n")
// );
// release
main(readFileSync("/dev/stdin", "utf8"));
0