#include <bits/stdc++.h>
using namespace std;
long double k, d, t, g, c, p, ilec, ilep, cp, zos;
long long dzielup(long long x, long long y) {
  if (x % y == 0) return x / y;
  return x / y + 1;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(NULL);
  cout.tie(NULL);
  cin >> k >> d >> t;
  cout.precision(10);
  g = dzielup(k, d);
  c = g * d;
  p = k + (c - k) / 2;
  ilep = floor(t / p);
  cp = ilep * p;
  zos = t - cp;
  if (zos <= k) {
    cout << fixed << ilep * c + zos << "\n";
  } else {
    zos -= k;
    cout << fixed << ilep * c + k + 2 * zos << "\n";
  }
  return 0;
}
