結果
問題 | No.472 平均順位 |
ユーザー |
|
提出日時 | 2021-05-03 01:02:37 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 272 ms / 2,000 ms |
コード長 | 1,276 bytes |
コンパイル時間 | 1,337 ms |
コンパイル使用メモリ | 126,996 KB |
最終ジャッジ日時 | 2025-01-21 06:05:35 |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 16 |
ソースコード
#include <map>#include <set>#include <list>#include <cmath>#include <ctime>#include <deque>#include <queue>#include <stack>#include <bitset>#include <cstdio>#include <limits>#include <vector>#include <cstdlib>#include <numeric>#include <sstream>#include <iostream>#include <algorithm>#include <functional>#include <iomanip>#include <unordered_map>#include <memory.h>#include <unordered_set>#include <fstream>#include <random>using namespace std;long long int dp[2][15001];long long int p[5000][4];int main(void){cin.tie(0);ios::sync_with_stdio(false);int N, P;cin >> N >> P;for (int i = 0; i < N; i++){for (int j = 0; j < 3; j++){cin >> p[i][j];}p[i][3] = 1;}for (int i = 0; i < 2; i++){for (int j = 0; j <= P; j++){dp[i][j] = 1e18;}}dp[1][0] = 0;for (int i = 0; i < N; i++){for (int j = 0; j <= P; j++){dp[0][j] = dp[1][j];dp[1][j] = 1e18;}for (int j = 0; j <= P; j++){if (dp[0][j] >= 1e18) continue;for (int k = 0; k < 4; k++){if (j + k <= P){dp[1][j + k] = min(dp[1][j + k], dp[0][j] + p[i][k]);}}}}long double res = dp[1][P];res /= N;cout << fixed;cout.precision(6);cout << res << '\n';return 0;}