結果
| 問題 | No.2099 [Cherry Alpha B] Time Machine |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-03-12 11:03:12 |
| 言語 | C++23 (gcc 15.2.0 + boost 1.89.0) |
| 結果 |
AC
|
| 実行時間 | 33 ms / 2,000 ms |
| コード長 | 849 bytes |
| 記録 | |
| コンパイル時間 | 3,407 ms |
| コンパイル使用メモリ | 333,324 KB |
| 実行使用メモリ | 7,844 KB |
| 最終ジャッジ日時 | 2026-03-12 11:03:19 |
| 合計ジャッジ時間 | 6,284 ms |
|
ジャッジサーバーID (参考情報) |
judge1_1 / judge2_1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 72 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
ll T, X, A, Y, B;
cin >> T;
cin >> X >> A;
cin >> Y >> B;
ll g = gcd(A, B);
const ll INF = (1LL << 62);
ll ans = INF;
if (T > 0) {
ll lim = A / g;
for (ll p = 0; p < lim; p++) {
ll f = (T + B * p) / A;
ll cost = T + (Y + B) * p - (A - X) * f;
ans = min(ans, cost);
}
} else {
ll lim = B / g;
for (ll f = 0; f < lim; f++) {
ll need = A * f - T; // T < 0 なので need > 0
ll p = (need + B - 1) / B; // ceil(need / B)
ll cost = T + (X - A) * f + (Y + B) * p;
ans = min(ans, cost);
}
}
cout << ans << '\n';
return 0;
}