結果
問題 | No.2227 King Kraken's Attack |
ユーザー |
![]() |
提出日時 | 2023-02-24 22:10:22 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 258 ms / 2,000 ms |
コード長 | 2,184 bytes |
コンパイル時間 | 2,039 ms |
コンパイル使用メモリ | 193,752 KB |
最終ジャッジ日時 | 2025-02-10 21:14:07 |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 42 |
ソースコード
#include<bits/stdc++.h>using namespace std;#define ll long long#define ull unsigned long long#define db double#define pii pair<int,int>#define pll pair<ll,ll>#define ti3 tuple<int,int,int>#define int128 __int128_t#define pii128 pair<int128,int128>const int inf = 1 << 30;const ll linf = 1e18;const ll mod = 1e9 + 7;const db EPS = 1e-10;const db pi = acos(-1);template<class T> bool chmin(T& x, T y){if(x > y) {x = y;return true;} else return false;}template<class T> bool chmax(T& x, T y){if(x < y) {x = y;return true;} else return false;}// overload macro#define CAT( A, B ) A ## B#define SELECT( NAME, NUM ) CAT( NAME, NUM )#define GET_COUNT( _1, _2, _3, _4, _5, _6 /* ad nauseam */, COUNT, ... ) COUNT#define VA_SIZE( ... ) GET_COUNT( __VA_ARGS__, 6, 5, 4, 3, 2, 1 )#define VA_SELECT( NAME, ... ) SELECT( NAME, VA_SIZE(__VA_ARGS__) )(__VA_ARGS__)// rep(overload)#define rep( ... ) VA_SELECT(rep, __VA_ARGS__)#define rep2(i, n) for (decay_t<decltype(n)> i = 0; i < n; i++)#define rep3(i, a, b) for (decay_t<decltype(a)> i = a; i < b; i++)#define rep4(i, a, b, c) for (decay_t<decltype(a)> i = a; i < b; i += c)// rrep(overload)#define rrep( ... ) VA_SELECT(rrep, __VA_ARGS__)#define rrep2(i, n) for (decay_t<decltype(n)> i = n - 1; i >= 0; i--)#define rrep3(i, a, b) for (decay_t<decltype(a)> i = b - 1; i >= a; i--)#define rrep4(i, a, b, c) for (decay_t<decltype(a)> i = b - 1; i >= a; i -= c)// for_earh#define fore(e, v) for (auto&& e : v)// vector#define all(v) v.begin(), v.end()#define rall(v) v.rbegin(), v.rend()int main() {cin.tie(nullptr);ios_base::sync_with_stdio(false);cout << fixed << setprecision(20);ll H, W, LA, LB, KA, KB;cin >> H >> W >> LA >> LB >> KA >> KB;ll ans = H + W;rep (i, H + W + 1) {ll h = min(H, LA * i);ll lb = -1, ub = H + W + 1;while (ub - lb > 1) {ll mid = (ub + lb) / 2;ll w = min(W, mid * LB);if (w * h + KA * i + mid * KB >= H * W) ub = mid;else lb = mid;}chmin(ans, ub + i);}cout << ans << "\n";}