結果
問題 | No.2099 [Cherry Alpha B] Time Machine |
ユーザー |
![]() |
提出日時 | 2022-10-26 20:37:52 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 978 bytes |
コンパイル時間 | 866 ms |
コンパイル使用メモリ | 96,140 KB |
最終ジャッジ日時 | 2025-02-08 12:52:34 |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 68 WA * 4 |
ソースコード
#include <iostream> #include <cstdio> #include <algorithm> #include <string> #include <vector> #include <queue> #include <set> #include <numeric> #include <cmath> #define ll long long #define endl '\n' using namespace std; // category : int main() { ios_base::sync_with_stdio(false); ll t,x,a,y,b; cin>>t>>x>>a>>y>>b; ll n,m,l,ans=20000000ll*20000000ll; // min of x*n+y*m+l // when a*n-b*m+l = t if(t>0){ // m=0 ~ (t-floor(t/a)*a) + floor(t/a)*x m=(t-floor(t/a)*a) + floor(t/a)*x; for(int i=0;i<=m;i++){ n=floor((t+b*i)/a); l=t-a*n+b*i; ans=min(n*x+i*y+l,ans); } } else{ // m=ceil(|t|/b) ~ ceil(|t|/b)+ceil(a/b) m=ceil(double(abs(t))/b)+ceil(a/b); for(int i=ceil(double(abs(t))/b);i<=m;i++){ n=floor((b*i-abs(t))/a); l=b*i-abs(t)-a*n; ans=min(n*x+i*y+l,ans); } } cout<<ans<<endl; return 0; }