Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- // Prioridade
- typedef long long ll;
- typedef pair<int,int> pii;
- typedef vector<int> vi;
- typedef vector<ll> vll;
- typedef vector<pii> vpi;
- #define F first
- #define S second
- #define PB push_back
- #define MP make_pair
- #define REP(i,a,b) for(int i = a; i < (int)(b); i++)
- #define INF 0x3f3f3f3f
- #define INFLL 0x3f3f3f3f3f3f3f3f
- #define all(x) x.begin(),x.end()
- #define MOD 1000000007
- #define endl '\n'
- #define mdc(a, b) (__gcd((a), (b)))
- #define mmc(a, b) (((a)/__gcd(a, b)) * b)
- #define W(x) cerr << "\033[31m"<< #x << " = " << x << "\033[0m" << endl;
- // fim da Prioridade
- ll d,k,a,b,t;
- ll work(ll mid){
- if((mid/k) *k == mid && mid != 0){
- return mid*a + ((mid)/k - 1) * t+(d-mid)*b;
- }
- return mid*a + ((mid/k) * t) + (d-mid)*b;
- }
- int main(){
- cin.tie(0);
- ios_base::sync_with_stdio(0);
- cin >> d >> k >> a >> b >> t;
- ll lo = 0, hi = d,mid1, mid2;
- while(hi - lo > 300){
- mid1 = (2*lo+hi)/3 ;
- mid2 = (lo+2*hi)/3;
- //cout << work(mid1) << " " << work(mid2) << endl;
- if(work(mid1) > work(mid2)){
- lo = mid1;
- }else{
- hi = mid2;
- }
- }
- ll ans = 1LL<<62;
- for(ll i = lo;i <= hi;i++){
- ans = min(ans,work(i));
- }
- cout << ans << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement