結果
問題 | No.714 回転寿司屋のシミュレート |
ユーザー |
![]() |
提出日時 | 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 |
ソースコード
"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"));