#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define int long long #define MOD7 1000000007 #define MOD9 1000000009 #define rep(i, n) for (int i = 0; i < (n); i++) #define itrep(i, a) for (auto i = (a).begin(); i != (a).end(); i++) #define REP(i, a, n) for (int i = (a); i <= (n); i++) #define all(a) (a).begin(), (a).end() using namespace std; int dx[4] = { 1, 0, -1, 0 }; int dy[4] = { 0, -1, 0, 1 }; template void inputVector(vector& v, int n) { v.resize(n); for (int i = 0; i < v.size(); i++) cin >> v[i]; } double F(int n) { double ret = 0; rep(i, n) ret += pow(0.81, i + 1); ret = sqrt(ret); double tmp = 0; rep(i, n) tmp += pow(0.9, i + 1); ret /= tmp; return ret; } double F_INF = F(1000000); double f(int n) { double ret = F(n) - F_INF; ret /= F(1) - F_INF; ret *= 1200; return ret; } double g(int X) { return pow(2, (double) X / 800); } double invg(double X) { double low = 0; double high = 100000; double mid = (high + low) / 2; int cnt = 100; while (cnt--) { if (g(mid) > X) { high = mid; } else { low = mid; } mid = (high + low) / 2; } cerr << "invg(" << X << ") = " << mid << endl; return mid; } signed main() { int N; cin >> N; vector perf; inputVector(perf, N); double rating = -f(N); double tmp = 0; rep(i, N) tmp += g(perf[i]) * pow(0.9, i + 1); double tmp2 = 0; rep(i, N) tmp2 += pow(0.9, i + 1); tmp /= tmp2; rating += invg(tmp); cout << (int) rating << endl; return 0; }