Advertisement
Guest User

D cf

a guest
Mar 22nd, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.24 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. // Prioridade
  6. typedef long long ll;
  7. typedef pair<int,int> pii;
  8. typedef vector<int> vi;
  9. typedef vector<ll> vll;
  10. typedef vector<pii> vpi;
  11.  
  12. #define F first
  13. #define S second
  14. #define PB push_back
  15. #define MP make_pair
  16. #define REP(i,a,b) for(int i = a; i < (int)(b); i++)
  17. #define INF 0x3f3f3f3f
  18. #define INFLL 0x3f3f3f3f3f3f3f3f
  19. #define all(x) x.begin(),x.end()
  20. #define MOD 1000000007
  21. #define endl '\n'
  22. #define mdc(a, b) (__gcd((a), (b)))
  23. #define mmc(a, b) (((a)/__gcd(a, b)) * b)
  24. #define W(x) cerr << "\033[31m"<< #x << " = " << x << "\033[0m" << endl;
  25. // fim da Prioridade
  26. ll d,k,a,b,t;
  27. ll work(ll mid){
  28. if((mid/k) *k == mid && mid != 0){
  29. return mid*a + ((mid)/k - 1) * t+(d-mid)*b;
  30. }
  31. return mid*a + ((mid/k) * t) + (d-mid)*b;
  32. }
  33. int main(){
  34. cin.tie(0);
  35. ios_base::sync_with_stdio(0);
  36. cin >> d >> k >> a >> b >> t;
  37. ll lo = 0, hi = d,mid1, mid2;
  38.  
  39. while(hi - lo > 300){
  40. mid1 = (2*lo+hi)/3 ;
  41. mid2 = (lo+2*hi)/3;
  42.  
  43. //cout << work(mid1) << " " << work(mid2) << endl;
  44. if(work(mid1) > work(mid2)){
  45. lo = mid1;
  46. }else{
  47. hi = mid2;
  48. }
  49. }
  50. ll ans = 1LL<<62;
  51. for(ll i = lo;i <= hi;i++){
  52. ans = min(ans,work(i));
  53.  
  54. }
  55. cout << ans << endl;
  56. return 0;
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement