func_code_string: #include<bits/stdc++.h>   using namespace std;      int check(vector<long long> a) {    for (int i = 0; i + 1 < a.size(); i++) {     if (a[i] > a[i + 1]) {      return 0;     }     a[i + 1] -= a[i];     a[i] = 0;    }    if (a.back() == 0)     return 1;    return 0;   }      void solve() {    int n;    cin >> n;    vector<long long> a(n);    for (int i = 0; i < n; i++) {     cin >> a[i];    }    if (check(a)) {     cout <<  YES n ;     return;    }    if (n == 1) {     cout <<  NO n ;     return;    }    swap(a[0], a[1]);    if (check(a)) {     cout <<  YES n ;     return;    }    swap(a[0], a[1]);    swap(a[n - 2], a[n - 1]);    if (check(a)) {     cout <<  YES n ;     return;    }    swap(a[n - 2], a[n - 1]);    vector<long long> p(n), s(n);    vector<long long> b = a;    p[0] = b[0];    for (int i = 1; i < n; i++) {     if (p[i - 1] == -1 || b[i - 1] > b[i]) {      p[i] = -1;     } else {      b[i] -= b[i - 1];      b[i - 1] = 0;      p[i] = b[i];     }    }    b = a;    s[n - 1] = b[n - 1];    for (int i = n - 2; i >= 0; i--) {     if (s[i + 1] == -1 || b[i + 1] > b[i]) {      s[i] = -1;     } else {      b[i] -= b[i + 1];      b[i + 1] = 0;      s[i] = b[i];     }    }    for (int i = 1; i + 2 < n; i++) {     vector<long long> c = {p[i - 1], a[i], a[i + 1], s[i + 2]};     if (p[i - 1] == -1 || s[i + 2] == -1) {      continue;     }     swap(c[1], c[2]);     if (check(c)) {      cout <<  YES n ;      return;     }    }    cout <<  NO n ;   }      int main() {    ios_base::sync_with_stdio(false);    cin.tie(0);    cout.tie(0);    int t;    cin >> t;    while (t--) {     solve();    }   }   