2-variable Function
問題
D – 2-variable Function
プログラミング初級者から上級者まで楽しめる、競技プログラミングコンテストサイト「AtCoder」。オンラインで毎週開催プログラミングコンテストを開催しています。競技…
記録
- 2022/6/19 バーチャル参加 解法わからず。
解法
- あとで書く。
- 反省記録はこちら(まだ作っていません)
コード例1
#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; ll f(ll a, ll b) { return a * a * a + a * a * b + a * b * b + b * b * b; } int main() { ll N; cin >> N; ll ans = INF; ll j = 1000000; for(ll i = 0; i <= 1000000; ++i) { while (N <= f(i, j) && 0 <= j) { ans = min(ans, f(i, j)); j--; } } cout << ans << endl; return 0; }
コード例2
#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; ll f(ll a, ll b) { return a * a * a + a * a * b + a * b * b + b * b * b; } int main() { ll N; cin >> N; ll ans = INF; for(ll i = 0; i <= 1000000; ++i) { ll wa = -1; ll ac = 1000000; while (wa + 1 != ac) { ll md = (wa + ac) / 2; if (N <= f(i, md)) { ac = md; } else { wa = md; } } ans = min(ans, f(i, ac)); } cout << ans << endl; return 0; }