#ifndef INCLUDED_main #define INCLUDED_main #include __FILE__ // このinclude内ではテンプレートだけ読取 const ll mod = 998244353; using mint = atcoder::modint998244353; //const ll mod = 1000000007; using mint = atcoder::modint1000000007; int main(){ int n; cin >> n; double r; cin >> r; double rr = 1 - r; double ans = 100*((1-pow(rr, n))/(1-rr)); printf("%.10lf", ans); } #else #include #include using ll = long long; using ld = long double; #define inf 1000000039 #define llinf 393939393939393939 #define fore(i, a) for(auto &i : a) #define rep(i, a, b) for(int i = a; i < b; i++) #define erep(i, a, b) for(int i = a; i <= b; i++) #define rrep(i, a, b) for(int i = a; i >= b; i--) #define all(x) x.begin(), x.end() #define rall(x) x.begin(), x.end(), greater() #define part(x, a, b) x.begin()+a, x.begin()+b+1 #define rpart(x, a, b) x.begin()+a, x.begin()+b+1, std::greater() #define pcnt(x) __builtin_popcount(x) #define llpcnt(x) __builtin_popcountll(x) template using pq = std::priority_queue; template using pqg = std::priority_queue, std::greater>; template bool chmax(T &a, const T &b){ if(a < b){ a = b; return 1; } else return 0; } template bool chmin(T &a, const T &b){ if(a > b){ a = b; return 1; } else return 0; } // 多次元配列の生成 template class Mvector : public std::vector>{ public: template Mvector(T init, N n, Sizes... sizes) : std::vector >(n, Mvector(init, sizes...)) { } }; template class Mvector : public std::vector{ public: template Mvector(T init, N n) : std::vector(n, init) { } }; void print(){ std::cout << std::endl; } // ユニバーサル参照に注意 左辺値参照or右辺値参照を推論 template void print(First&& first, Rest&&... rest){ std::cout << first; if(sizeof...(rest) != 0){ std::cout << " "; } print(std::forward(rest)...); // 再帰的にパラメータパックを展開 } template void print(std::vector &v) { for(auto &x : v){ std::cout << x; if(&x != &v.back()){ std::cout << " "; } } std::cout << std::endl; } template void print(std::vector> &v) { for(auto &x : v) print(x); } using namespace std; #endif