제출 #348982

#제출 시각아이디문제언어결과실행 시간메모리
348982RohamIzadidoostXOR Sum (info1cup17_xorsum)C++14
45 / 100
555 ms792 KiB
#pragma GCC optimize("Ofast,unroll-loops,fast-math") #include<bits/stdc++.h> using namespace std; typedef long long ll ; #define pll pair<ll , ll > #define all(x) (x).begin(),(x).end() #define sz(x) (ll)(x).size() #define X first #define Y second #define mp make_pair #define pii pair<int , int> #define vec vector #define file_io freopen("input.txt", "r", stdin);freopen("output.txt", "w", stdout); #define migmig ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); #define pb push_back ll poww(ll a, ll b, ll md) { return (!b ? 1 : (b & 1 ? a * poww(a * a % md, b / 2, md) % md : poww(a * a % md, b / 2, md) % md)); } const int maxn = 1000*100+5 ; const int maxm = 4e3 + 5 ; const ll inf = 9223372036854775807 ; const ll mod = 1e9 + 7 ; int n , v[maxn] , ans , a[maxn]; int main() { migmig ; cin>>n ; for(int i =1 ; i <= n ; i ++ ){ cin>>v[i] ; } if(n < maxn){ for(int i = 1 ; i <= n ; i ++ ){ for(int j = i ; j <= n ; j++ ){ ans = ans ^ (v[i] + v[j]) ; } } cout<<ans ; return 0 ; } for(int i = 1 ; i <= n; i ++ ) a[v[i]] ++ ; for(int i = 1 ; i < maxm ; i ++ ){ for(int j = 1 ; j < i ; j ++ ){ ans = ans ^ ( ( (a[i] * a[j] ) & 1 ) * (i + j) ) ; //if(( ( (a[i] * a[j] ) & 1 ) * (i + j) )) cout<<( ( (a[i] * a[j] ) & 1 ) * (i + j) ) << endl ; } ans = ans ^ ( ( (a[i] * (a[i] + 1) / 2) & 1 ) * 2 * i ) ; } cout<<ans ; }
#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...