一道洛谷上面的题目CF245C Game with Coins
陷入逻辑里面出不来了
#include<bits/stdc++.h>
using namespace std;
int ans, n;
int a[1005];
int main() {
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> a[i];
}
if (n == 1 || n % 2 == 0) {
cout << -1;
return 0;
}
// 下面是我写的代码,ac不了,不知道哪种情况没考虑
// for (int i = n; i >= 1; i--) {
// if(a[i]) {
// ans += a[i];
// a[i / 2] = 0;
// a[i] = 0;
// a[i-1] = 0;
// }
// }
//下面是能通过的代码
for (int i = n; i >= 1; i--) {
if(a[i]>0) {
ans += a[i];
a[i / 2]-=a[i];
if(i % 2 == 0) a[i+1]-=a[i];
else a[i-1]-=a[i];
}
}
cout << ans;
return 0;
}