#include #include #include #include #include #include #include #include #include #include #include #include"time.h" using namespace std; #define FOR(k,m,n) for(int (k)=(m);(k)<(n);(k)++) #define REP(i,n) FOR((i),0,(n)) #define LL long long #define CLR(a) memset((a),0,sizeof(a)) #define SZ(x) (int((x).size())) #define dump(x) cerr << #x << " = " << (x) << endl //毎回変える場所 #define N_MAX 200 //問題文のとおり double F(int n) { double up = 0.81*(1 - pow(0.81, n)) / 0.19; up=sqrt(up); double down = 0.9*(1 - pow(0.9, n)) / 0.1; return up/down; } double f(int n) { double up=F(n)-(sqrt(0.81/0.19)/(0.9/0.1)); double down=F(1) - (sqrt(0.81/0.19) / (0.9/0.1)); return 1200*up/down; } double g(double X) { return pow(2.0,X/800); } int N; int temp; int main() { //g^-1の中身を計算 cin>>N; double X=0; FOR(i,1, N+1) { cin>>temp; X+=g(temp)*pow(0.9,i); } X/=(0.9*(1-pow(0.9,N))/0.1); //g^-1の値を計算 double ans=800*log2(X); ans-=f(N); printf("%.0f",ans); //cin>>N; return 0; }