Submission #766201

#TimeUsernameProblemLanguageResultExecution timeMemory
766201Ahmed57XOR Sum (info1cup17_xorsum)C++17
0 / 100
813 ms24296 KiB
#include <bits/stdc++.h> using namespace std; signed main(){ ios_base::sync_with_stdio(false);cin.tie(0); long long n; cin>>n; long long arr[n]; for(int i = 0;i<n;i++){ cin>>arr[i]; } sort(arr,arr+n); long long all = 0; reverse(arr,arr+n); for(long long i = 0;i<30;i++){ vector<long long> v; long long ans = 0; for(int j = 0;j<n;j++){ if((arr[j]+arr[j])&(1LL<<i)){ ans++; } v.push_back(arr[j]&((1LL<<(i+1))-1)); } sort(v.begin(),v.end()); long long il = 0 , ir = 0; long long ll = 0; for(int j = v.size()-1;j>=0;j--){ long long l=(1LL<<i),r=(1LL<<(i+1)); l-=v[j] , r-=v[j]; l&=((1LL<<(i+1))-1); r&=((1LL<<(i+1))-1); l+=(1LL<<(i+1)); r+=(1LL<<(i+1)); l&=((1LL<<(i+1))-1); r&=((1LL<<(i+1))-1); while(ir<v.size()&&v[ir]<r)ir++; if(l>=ll){ while(il<v.size()&&v[il]<l)il++; }else{ il = 0; while(il<v.size()&&v[il]<l)il++; } //cout<<l<<" "<<r<<" "<<il<<" "<<ir<<" "<<v[il]<<" "<<v[ir]<<endl; ll = l; if(l<=r)ans+=(ir-il); else ans+=ir+(n-il); } //cout<<endl; if(((ans/2)&1))all+=(1LL<<i); } cout<<all<<endl; }

Compilation message (stderr)

xorsum.cpp: In function 'int main()':
xorsum.cpp:37:21: 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]
   37 |             while(ir<v.size()&&v[ir]<r)ir++;
      |                   ~~^~~~~~~~~
xorsum.cpp:39:25: 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]
   39 |                 while(il<v.size()&&v[il]<l)il++;
      |                       ~~^~~~~~~~~
xorsum.cpp:42:25: 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]
   42 |                 while(il<v.size()&&v[il]<l)il++;
      |                       ~~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...