fork download
  1. // Minimum Time (Binary Search on Answer)
  2. #include <bits/stdc++.h>
  3. using namespace std;
  4.  
  5. bool canMake(vector<int>& t, int k, long long time) {
  6. long long total = 0;
  7. for(int x : t) total += time / x;
  8. return total >= k;
  9. }
  10.  
  11. int main() {
  12. int n = 3, k = 7;
  13. vector<int> t = {2,3,5};
  14.  
  15. long long l = 1, r = 1e18, ans = 0;
  16.  
  17. while(l <= r) {
  18. long long mid = (l + r) / 2;
  19. if(canMake(t, k, mid)) {
  20. ans = mid;
  21. r = mid - 1;
  22. } else l = mid + 1;
  23. }
  24.  
  25. cout << ans;
  26. }
Success #stdin #stdout 0.01s 5288KB
stdin
Standard input is empty
stdout
8