#include <bits/stdc++.h>
using namespace std;
const long long maxi = 1e18;
long long k, d, t, h, q, f;
long double ans;
int main() {
  cout << fixed << setprecision(12);
  cin >> k >> d >> t;
  q = k / d;
  if (k % d != 0) {
    q++;
  }
  q = q * d;
  h = 2 * k + (q - k);
  f = (2 * t) / h;
  if ((2 * t) % h == 0) {
    ans = f * q;
  } else if ((2 * t) % h <= 2 * k) {
    ans = (f * q) + (((2 * t) % h) / 2);
    if (((2 * t) % h) % 2 == 1) {
      ans = ans + 0.5;
    }
  } else {
    ans = (f * q) + (k) + (((2 * t) % h) - (2 * k));
  }
  cout << ans << endl;
  return 0;
}
