Max_Leb

Untitled

Jan 29th, 2022
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.95 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. unsigned long long int bin_search(int A, int B, unsigned long long int K, unsigned long long int M, unsigned long long X){
  4. unsigned long long left = 0, right = (2 * X) / (A + B) + 1;
  5. unsigned long long int tree_amount1, tree_amount2;
  6. unsigned long long int mid;
  7. while(left + 1 < right){
  8. mid = (left + right) / 2;
  9. tree_amount1 = A * (K - 1) * (mid / K) + A * (mid % K);
  10. tree_amount2 = B * (M - 1) * (mid / M) + B * (mid % M);
  11. if (tree_amount1 + tree_amount2 >= X)
  12. right = mid;
  13. else
  14. left = mid;
  15. }
  16. return right;
  17. }
  18.  
  19. int main (){
  20. FILE *inFile = fopen("forest.in", "r");
  21. FILE *outFile = fopen("forest.out", "w");
  22. int A, B;
  23. unsigned long long K, M, X;
  24. fscanf(inFile, "%d%llu%d%llu%llu", &A, &K, &B, &M, &X);
  25. fprintf(outFile, "%llu", bin_search(A, B, K, M, X));
  26.  
  27. fclose(inFile);
  28. fclose(outFile);
  29.  
  30. return 0;
  31. }
Advertisement
Add Comment
Please, Sign In to add comment