fork download
  1. #include <iostream>
  2. #include <cmath> // dla fmod
  3. using namespace std;
  4.  
  5. int main() {
  6. int N, K; // N i K zawsze całkowite
  7. double M; // M może mieć ułamki
  8. cin >> N >> M >> K;
  9.  
  10. if (M == 0 || N == 0) {
  11. cout << M << endl;
  12. return 0;
  13. }
  14.  
  15. int x = 0;
  16.  
  17. // wybór początkowego x
  18. if (N % 2 <= M) {
  19. x = N;
  20. } else {
  21. x = (N <= M ? N : (int)M); // x zawsze całkowite
  22. }
  23.  
  24. for (int i = 0; i < K; i++) {
  25. N -= x; // N traci x (całkowite)
  26. M -= x / 2.0; // M traci połowę x (może być ułamek)
  27. M += x; // M dostaje x
  28.  
  29. if (N <= 0 || M <= 0) {
  30. break;
  31. }
  32.  
  33. // aktualizacja x po każdym kroku
  34. if (N % 2 <= M) {
  35. x = N;
  36. } else {
  37. x = (N <= M ? N : (int)M);
  38. }
  39. }
  40.  
  41. cout << M << endl;
  42. return 0;
  43. }
  44.  
  45.  
Success #stdin #stdout 0.01s 5288KB
stdin
1 99 4
stdout
99.5