Submission #496828

#TimeUsernameProblemLanguageResultExecution timeMemory
496828ergaganXOR Sum (info1cup17_xorsum)C++17
56 / 100
1692 ms50556 KiB
//я так много думал, что опять попал #include <bits/stdc++.h> #define all(x) x.begin(),x.end() #define pb push_back #define ppb pop_back #define pf push_front #define ppf pop_front #define f first #define s second #define left(v) v + v #define right(v) v + v + 1 #define ub upper_bound #define lb lower_bound using namespace std; typedef long long ll; #pragma comment(linker, "/stack:200000000") #pragma GCC optimize("Ofast") #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") //17 SEVENTEEN const long double Pi = acos(-1.0); const ll dx[] = {0,0,1,-1}; const ll dy[] = {1,-1,0,0}; const ll N = (ll) 1e6 + 17; const ll M = (ll) 5e3 + 69; const ll inf = (ll) 1e14 + 3; const ll mod = (ll) 1e9 + 7; ll sq(ll x) { return x * x; } ll zxc = 1, a[N], cnt[N]; vector<ll> v; map<ll, ll> mp; void solve() { ll n, xr = 0, mx = 0; cin >> n; for(ll i = 1; i <= n; i++) { cin >> a[i]; mx = max(mx, a[i]); mp[a[i]]++; } if(mx > M) { for(ll i = 1; i <= n; i++) { if(!mp[a[i]]) continue; if(mp[a[i]] % 2 == 1) v.pb(a[i]); if(!(mp[a[i]] % 2)) v.pb(a[i]), v.pb(a[i]); mp[a[i]] = 0; } for(ll i = 0; i < v.size(); i++) { for(ll j = i; j < v.size(); j++) { xr ^= (v[i] + v[j]); } } cout << xr; return; } if(mx <= M) { for(ll i = 1; i <= n; i++) { cnt[a[i]]++; } for(ll i = 1; i <= M; i++) { for(ll j = i; j <= M; j++) { if(cnt[i] && cnt[j]) { if(i == j && (cnt[i] * (cnt[i] + 1) / 2) % 2) xr ^= (i + j); if(cnt[i] * cnt[j] % 2 && i != j) xr ^= (i + j); } } } cout << xr; return; } } int main(/*Уверенно*/) { ios_base::sync_with_stdio(0); cin.tie(0); /* freopen(".in", "r", stdin); freopen(".out", "w", stdout); */ // cin >> zxc; while(zxc--) { solve(); } return 0; } // さよならさ いかなくちゃ

Compilation message (stderr)

xorsum.cpp:18: warning: ignoring '#pragma comment ' [-Wunknown-pragmas]
   18 | #pragma comment(linker, "/stack:200000000")
      | 
xorsum.cpp: In function 'void solve()':
xorsum.cpp:55:25: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   55 |         for(ll i = 0; i < v.size(); i++) {
      |                       ~~^~~~~~~~~~
xorsum.cpp:56:29: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   56 |             for(ll j = i; j < v.size(); j++) {
      |                           ~~^~~~~~~~~~
#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...