Submission #778166

#TimeUsernameProblemLanguageResultExecution timeMemory
778166vjudge1Deblo (COCI18_deblo)C++17
0 / 90
46 ms11780 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define faster ios_base::sync_with_stdio(false);cin.tie(NULL);
#define OYY 1000000005
#define mod 998244353
#define mid (start+end)/2
int dizi[100005],tree[400005],n;
vector <int> v[100005];
vector <int> ger;

inline void build(int node,int start,int end){
    if(start==end){
        tree[node]=dizi[start];
        return ;
    }
    build(node*2,start,mid),build(node*2+1,mid+1,end);
    tree[node]=tree[node*2]^tree[node*2+1];
}

inline int query(int node,int start,int end,int l,int r){
    if(start>end || start>r || end<l)return 0;
    if(start>=l && end<=r)return tree[node];
    return query(node*2,start,mid,l,r)^query(node*2+1,mid+1,end,l,r);
}

int32_t main(){
    faster
    cin>>n;
    int cev=0;
    for(int i=1;i<=n;i++){
        cin>>dizi[i];
        cev+=dizi[i];
    }
    build(1,1,n);
    for(int i=1;i<n;i++){
        int a,b;
        cin>>a>>b;
        v[a].push_back(b);
        v[b].push_back(a);
        ger.push_back(query(1,1,n,a,b));
    }
    //cout<<ger.size()<<endl;
    for(int i=0;i<ger.size();i++){
        cev+=ger[i];
        //cur^=ger[i];
    }
    cout<<cev<<'\n';
    return 0;
}

Compilation message (stderr)

deblo.cpp: In function 'int32_t main()':
deblo.cpp:44:18: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   44 |     for(int i=0;i<ger.size();i++){
      |                 ~^~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...