結果
| 問題 |
No.472 平均順位
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2018-05-08 21:19:43 |
| 言語 | JavaScript (node v23.5.0) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 1,015 bytes |
| コンパイル時間 | 29 ms |
| コンパイル使用メモリ | 6,692 KB |
| 実行使用メモリ | 52,780 KB |
| 最終ジャッジ日時 | 2024-10-13 00:37:19 |
| 合計ジャッジ時間 | 7,687 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 11 TLE * 2 -- * 3 |
ソースコード
function Main(input) {
let inputs = input.split('\n');
let n, p;
[n, p] = inputs[0].split(' ').map((e) => e - 0);
let a = new Array(n);
let b = new Array(n);
let c = new Array(n);
for (let i = 0; i < n; ++i) {
[a[i], b[i], c[i]] = inputs[1 + i].split(' ').map((e) => e - 0);
}
let dp = new Array(2);
dp[0] = new Array(p + 1).fill(10**9);
dp[0][0] = 0;
for (let i = 0; i < n; ++i) {
dp[~i & 1] = new Array(p + 1).fill(10**9);
for (let j = 0; j <= p; ++j) {
dp[~i & 1][j] = Math.min(dp[~i & 1][j], dp[i & 1][j] + a[i]);
if (j + 1 <= p) {
dp[~i & 1][j + 1] = Math.min(dp[~i & 1][j + 1], dp[i & 1][j] + b[i]);
}
if (j + 2 <= p) {
dp[~i & 1][j + 2] = Math.min(dp[~i & 1][j + 2], dp[i & 1][j] + c[i]);
}
if (j + 3 <= p) {
dp[~i & 1][j + 3] = Math.min(dp[~i & 1][j + 3], dp[i & 1][j] + 1);
}
}
}
console.log('%s', (dp[n & 1][p] / n).toFixed(7));
}
Main(require('fs').readFileSync('/dev/stdin', 'utf8'));