#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ld = long double;
template <class T>
bool ckmin(T& a, const T& b) {
  return a > b ? a = b, 1 : 0;
}
template <class T>
bool ckmax(T& a, const T& b) {
  return a < b ? a = b, 1 : 0;
}
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
signed main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);
  ll k, d, t;
  cin >> k >> d >> t;
  ll p = (k + d - 1) / d * d;
  ll c = k + p;
  ll rem = (2 * t) % c;
  ld fin = (2 * t) / c * p;
  if (rem > 2 * k)
    fin += rem - k;
  else
    fin += rem / 2.0;
  cout << fixed << setprecision(1) << fin << '\n';
}
