#include<bits/stdc++.h> using namespace std; #define ll long long #define cin(n) scanf("%d",&n) #define pb push_back #define mp make_pair int a[108]; ll pref[108]; int main() { int t,m,n,i,j,k,l; vector<pair<int,int> >sorts; vector<int>rem; cin(n); pref[0]=0; for(i=1;i<=n;i++) { cin(a[i]); pref[i]=pref[i-1]+a[i]; } ll ans=0; for(i=1;i<=n/2;i++){ for(j=n/2;j<=n;j++){ int sum=pref[j]-pref[i-1]; vector<int>lft,rt; lft.clear();rt.clear(); int ii; int pref2[108],pref3[108],c=0; pref2[0]=0,pref3[0]=0; //left set for(ii=1;ii<i;ii++) { lft.pb(a[ii]); c++; pref2[c]=pref2[c-1]+a[ii]; } c=0; //right set for(ii=j+1;ii<=n;ii++) { rt.pb(a[ii]); c++; pref3[c]=pref3[c-1]+a[ii]; } map<int,int>ma; //cout<<sum<<"\n"; int sz=lft.size()-1; int prev=0; for(k=0;sz>=0&&k<(1<<sz);k++){ int xr=0; prev=0; for(l=0;l<sz;l++){ if(!(k&(1<<l))) continue; xr^=(pref2[l+1]-pref2[prev]); prev=l+1; } xr^=(pref2[lft.size()]-pref2[prev]); xr^=sum; ma[xr]++; } if(lft.size()==0) { ma.clear(); ma[sum]=1; } sz=rt.size()-1; prev=0; for(k=0;sz>=0&&k<(1<<sz);k++){ int xr=0; prev=0; for(l=0;l<sz;l++){ if(!(k&(1<<l))) continue; xr^=(pref3[l+1]-pref3[prev]); prev=l+1; } xr^=(pref3[rt.size()]-pref3[prev]); ans+=ma[xr]; } if(rt.size()==0) ans+=ma[0]; } } cout<<ans<<"\n"; return 0; }