結果

問題 No.2701 A cans -> B cans
ユーザー sibasyun
提出日時 2024-04-25 11:07:16
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 1,856 bytes
コンパイル時間 1,916 ms
コンパイル使用メモリ 204,160 KB
最終ジャッジ日時 2025-02-21 08:52:16
ジャッジサーバーID
(参考情報)
judge1 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 6
other AC * 23 WA * 50
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

// A cans -> B cans
#include <bits/stdc++.h>
// #include <atcoder/all>
#include <iostream>
#include <math.h>
using namespace std;
// using namespace atcoder;
// using mint = modint998244353;
// using mint = modint1000000007;
using vi = vector<int>;
using vvi = vector<vector<int>>;
using ll = long long;
template <class T> using max_heap = priority_queue<T>;
template <class T> using min_heap = priority_queue<T, vector<T>, greater<>>;
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define rep2(i, f, n) for (int i = (int) f; i < (int)(n); i++)
#define repd(i, n, l) for (int i = (int) n; i >= (int) l; i--)
const ll inf = ll(1e9+7);
int main() {
int n, m;
cin >> n >> m;
vector<vector<ll>> C;
rep(i, n){
ll a, b, c;
cin >> a >> b >> c;
C.push_back({a, b, c});
}
sort(C.begin(), C.end(), [](vector<ll> &left, vector<ll> &right){
ll a1 = left[1] * left[2];
ll b1 = left[0] - left[1];
ll a2 = right[1] * right[2];
ll b2 = right[0] - right[1];
if (a1 * b2 > a2 * b1) return true;
else if (a1 * b2 == a2 * b1 && left[0] < right[0]) return true;
else return false;
});
vector<ll> ans(m+1, 0);
for (int p = 1; p <= m; p++){
ans[p] = max(ans[p], ans[p-1]);
ll now = p;
for (auto c : C){
if (c[0] > now) continue;
ll temp = 0;
ll now_i = 0;
now -= c[0];
now_i += c[1];
temp += c[1]*c[2];
ans[p] = max(ans[p], temp + ans[now]);
while (now + now_i >= c[0]){
now -= (c[0] - c[1]);
temp += c[1] * c[2];
ans[p] = max(ans[p], temp + ans[now]);
}
}
}
for (int i = 1; i <= m; i++){
cout << ans[i] << endl;
}
return 0;
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0