#include <bits/stdc++.h>
using namespace std;
long long a[2];
int main() {
  long long k, d, t;
  scanf("%lld%lld%lld", &k, &d, &t);
  a[0] = 2, a[1] = 1;
  long long tot = 2 * t;
  long long T = ((k - 1) / d + 1) * d;
  long long K = min(k, T), B = T - K;
  long long gx = K * a[0] + B * a[1];
  double res = (2 * t / gx * T) * 1.0;
  tot -= (2 * t / gx * gx);
  if (tot <= K * a[0])
    res += 1.0 * tot / (1.0 * a[0]);
  else {
    res += 1.0 * K;
    tot -= K * a[0];
    res += 1.0 * tot / (1.0 * a[1]);
  }
  printf("%.10lf\n", res);
  return 0;
}
