#include <bits/stdc++.h>
using namespace std;
template <class T1, class T2>
int upmin(T1 &x, T2 v) {
  if (x > v) {
    x = v;
    return 1;
  }
  return 0;
}
template <class T1, class T2>
int upmax(T1 &x, T2 v) {
  if (x < v) {
    x = v;
    return 1;
  }
  return 0;
}
int N, T;
double P;
void init() { cin >> N >> P >> T; }
vector<vector<double> > dp;
void preprocess() {
  dp = vector<vector<double> >(T + 1, vector<double>(N + 1));
  dp[0][0] = 1.0;
  for (int i = 0; i < T; ++i)
    for (int j = 0; j <= N; ++j) {
      if (j == N)
        dp[i + 1][j] += dp[i][j];
      else
        dp[i + 1][j] += dp[i][j] * (1.0 - P), dp[i + 1][j + 1] += dp[i][j] * P;
    }
}
void solve() {
  double ans = 0.0;
  for (int i = 1; i <= N; ++i) ans += dp[T][i] * i;
  cout << fixed << setprecision(9) << ans << endl;
}
signed main() {
  ios::sync_with_stdio(0);
  init();
  preprocess();
  solve();
  return 0;
}
