結果
| 問題 | No.2099 [Cherry Alpha B] Time Machine |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-03-12 11:03:12 |
| 言語 | C++23 (gcc 15.2.0 + boost 1.90.0) |
| 結果 |
AC
|
| 実行時間 | 31 ms / 2,000 ms |
| + 175µs | |
| コード長 | 849 bytes |
| 記録 | |
| コンパイル時間 | 1,934 ms |
| コンパイル使用メモリ | 330,784 KB |
| 実行使用メモリ | 5,888 KB |
| 最終ジャッジ日時 | 2026-07-30 04:04:09 |
| 合計ジャッジ時間 | 5,348 ms |
|
ジャッジサーバーID (参考情報) |
judge3_0 / judge1_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| 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;
}