結果
問題 | No.472 平均順位 |
ユーザー |
![]() |
提出日時 | 2019-03-20 23:37:49 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 657 ms / 2,000 ms |
コード長 | 1,831 bytes |
コンパイル時間 | 979 ms |
コンパイル使用メモリ | 109,552 KB |
最終ジャッジ日時 | 2025-01-06 23:38:39 |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 16 |
ソースコード
#include <iostream>#include <iomanip>#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>#include <string>#include <sstream>#include <complex>#include <vector>#include <list>#include <queue>#include <deque>#include <stack>#include <map>#include <set>#define rep(i, n) for (int i = 0; i < (n); i++)#define rrep(i, n) for (int i = (n) - 1; i >= 0; i--)#define reps(i, n) for (int i = 1; i <= (n); i++)#define repi(i, a, b) for (int i = (a); i < (b); i++)#define all(a) (a).begin(), (a).end()#define bit(b) (1ull << (b))using namespace std;using i32 = long long;using u32 = unsigned long long;using i64 = long long;using u64 = unsigned long long;using f64 = double;using vi32 = vector<i32>;using vu32 = vector<u32>;using vi64 = vector<i64>;using vu64 = vector<u64>;using vf64 = vector<f64>;using vstr = vector<string>;using vvi32 = vector<vi32>;using vvu32 = vector<vu32>;using vvi64 = vector<vi64>;using vvu64 = vector<vu64>;using vvf64 = vector<vf64>;template<typename T, typename S> void amax(T &x, S y) { if (x < y) x = y; }template<typename T, typename S> void amin(T &x, S y) { if (y < x) x = y; }int n, p;class Rank {public:int a, b, c;};vector<Rank> abc;i64 memo[5010][15010];i64 rec(int i, int j) {if (memo[i][j]) return memo[i][j];if (j < 0 || j > (n - i) * 3) return 1e9;if (i == n) return 0;i64 ret = 1 + rec(i + 1, j - 3);amin(ret, abc[i].a + rec(i + 1, j));amin(ret, abc[i].b + rec(i + 1, j - 1));amin(ret, abc[i].c + rec(i + 1, j - 2));return memo[i][j] = ret;}int main() {ios::sync_with_stdio(false);cin.tie(0);cout << fixed << setprecision(16);cin >> n >> p;rep(i, n) {int a, b, c;cin >> a >> b >> c;abc.push_back({a, b, c});}cout << rec(0, p) / (f64) n << endl;return 0;}