結果
問題 | No.1380 Borderline |
ユーザー | ose20 |
提出日時 | 2021-03-18 11:25:41 |
言語 | TypeScript (5.4.3) |
結果 |
CE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 1,681 bytes |
コンパイル時間 | 4,697 ms |
コンパイル使用メモリ | 145,256 KB |
最終ジャッジ日時 | 2024-04-28 02:19:17 |
合計ジャッジ時間 | 5,326 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
コンパイルメッセージ
main.ts(2,21): error TS2307: Cannot find module 'fs' or its corresponding type declarations.
ソースコード
// npm install --save-dev @types/node import * as fs from 'fs'; const input = fs.readFileSync('/dev/stdin', 'utf8'); const nlarray = input.split('\n'); const NKarray = nlarray[0].split(' '); const N = parseInt(NKarray[0]); const K = parseInt(NKarray[1]); const parray = nlarray[1].split(' '); const n_parray = parray.map(Number); n_parray.sort( function(a, b) { if (a < b) return -1; if (a > b) return 1; return 0; } ); // ここから違うコード // pass[i] := ボーダーを i 点としたときの合格者数 let pass: number[] = []; // 全員が 400 点をとって、かつ定員が N より小さい場合に対応するため // ボーダーは 401 点まで考える (pi <= 400 なので pass[401] は必ず 0 になる) for(let border = 0; border <= 401; border++) { let pass_num = 0; for (let j = 0; j < N; j++) { if(n_parray[j] >= border) { // もし j さんの点数が border 以上だったら pass_num += 1; } } // ボーダーが border 点の時の合格者人数は調べ終わったので配列に追加 pass.push(pass_num); } // ボーダーをあげればあげるほど合格者は少なくなっていくので // pass[0] >= pass [1] >= ... >= pass[400] が成り立っているはず // 答えは、pass[i] を i が小さい順に見ていって // 初めて合格者数が k 以下になる時の合格者数が答え for(let i = 0; i <= 401; i++) { if(pass[i] <= K) { console.log(pass[i]); break; // 初めて条件を満たすものが答えなのであとはループを回さない(回すと条件を満たすものがすべて出力されてしまう) } }