結果
問題 | No.2099 [Cherry Alpha B] Time Machine |
ユーザー |
|
提出日時 | 2022-10-14 22:44:38 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 2,197 bytes |
コンパイル時間 | 3,000 ms |
コンパイル使用メモリ | 158,720 KB |
実行使用メモリ | 6,948 KB |
最終ジャッジ日時 | 2024-06-26 16:20:29 |
合計ジャッジ時間 | 14,115 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 51 WA * 21 |
ソースコード
#if !__INCLUDE_LEVEL__#include __FILE__signed main() {ios::sync_with_stdio(false);cin.tie(nullptr);ll T, X, A, Y, B;cin >> T >> X >> A >> Y >> B;if (T > 0) {if (X >= A) {cout << T << "\n";return 0;}ll TT = T % A;ll ans = T / A * X;cerr << ans << "\n";ll add_cost = TT;REP(i, 1e7) {if (i == 0)continue;ll cost = X * i;if ((A * i - TT) % B == 0) {cost += Y * (A * i - TT) / B;} else {cost += Y * ((A * i - TT) / B + 1) + ((A * i - TT) % B);}add_cost = min(add_cost, cost);}cout << ans + add_cost << "\n";} else {if (T % B == 0) {cout << T / B * Y << "\n";return 0;}T *= -1;ll TT = (T / B + 1) * B - T;ll ans = (T / B + 1) * Y;cerr << (T / B + 1) * B << "\n";ll add_cost = TT;REP(i, 1e7) {// if (i == 0)// continue;if (TT + B * i < A)continue;ll cost = Y * i;if ((B * i + TT) % A == 0) {cost += X * (B * i + TT) / A;} else {cost += X * (B * i + TT) / A + ((B * i + TT) % A);}add_cost = min(add_cost, cost);}cout << ans + add_cost << "\n";}return 0;}//====================temp====================#else#include <bits/stdc++.h>using namespace std;#define REP(i, n) for (int i = 0; i < (int)(n); i++)#define RREP(i, n) for (int i = ((int)(n)-1); i >= 0; i--)#define REPITR(itr, ARRAY) \for (auto itr = (ARRAY).begin(); itr != (ARRAY).end(); ++itr)#define RREPITR(itr, ARRAY) \for (auto itr = (ARRAY).rbegin(); itr != (ARRAY).rend(); ++itr)#define ALL(n) (n).begin(), (n).end()using ll = long long;using ull = unsigned long long;//#define int long longtemplate<typename T> struct edge {int to;T cost;edge() {}edge(int to, T cost): to(to), cost(cost) {}};#endif