Hydrate
問題
B – Hydrate
プログラミング初級者から上級者まで楽しめる、競技プログラミングコンテストサイト「AtCoder」。オンラインで毎週開催プログラミングコンテストを開催しています。競技…
記録
- 2022/3/25 解法わからず
解法
- \(A + B \cdot ans \leq C \cdot D \cdot ans \)
- \(A \leq C \cdot D \cdot ans – B \cdot ans \)
- \(A \leq (CD – B) ans \)
- \(\lceil \frac{A}{(CD – B)} \rceil \leq ans \)
- \((CD – B) \leq 0 \) … ダメ
コード例
#include <bits/stdc++.h> using namespace std; #include <atcoder/all> using namespace atcoder; using ll = long long; using P = pair<int, int>; #define rep(i, n) for(int i = 0; i < (n); ++i) // using mint = modint998244353; // using mint = modint1000000007; // const int mod = 1000000007; // const ll INF = 1LL << 62; // const int INF = 1001001001; /* A + Bx <= CDx A <= CDx - Bx A <= (CD - B)x A ---------(切り上げ) <= ans CD - B (CD - B) <= 0 ... ダメ */ int main() { ll A, B, C, D; cin >> A >> B >> C >> D; if(C * D - B <= 0) { cout << "-1" << endl; return 0; } cout << (A + (C * D - B - 1)) / (C * D - B) << endl; return 0; }