每次以能量E跳到下一个,剩余能量都是2*E-H[i+1],所以倒着推一边就可以了
cin >> n;
int *T = new int[n + 1];
for (int i = 1; i <= n; i++) cin >> T[i];
float E = 0.0;
for (int i = n - 1; i >= 0; i--) E = (E + T[i+1]) / 2;
if (E-(int)E > 0) E = E + 1;
cout << (int)E << endl;