Submission #1156569

#TimeUsernameProblemLanguageResultExecution timeMemory
1156569KaleemRazaSyedIntergalactic ship (IZhO19_xorsum)C++20
0 / 100
2094 ms1348 KiB
#include<bits/stdc++.h>

using namespace std;

typedef long long ll;

int main()
{
  int n;
  cin >> n;
  int a[n];
  for(int i = 0; i < n; i ++)
    cin >> a[i];

  int q;
  cin >> q;
  int l[q], r[q], x[q];
  for(int i = 0; i < q; i ++)
    {
      cin >> l[i] >> r[i] >> x[i];
      l[i]--;
    }

  ll ans = 0;
  for(int mask = 0; mask < (1 << q); mask++)
    {
      int pref[n + 1] = {};
      for(int i = 0; i < q; i ++)
	if((1 << i)& mask)
	  pref[l[i]] ^= x[i], pref[r[i]] ^= x[i];

      ll sm2 = 0, sm = 0, cur = 0;
      for(int i = 0; i < n; i ++)
	{
	  int v = a[i] ^ pref[i];
	  ll x = 0;
	  x += sm2;
	  x += 1ll * (i + 1) * (v * v);
	  x += sm * v * 2;
	  cur += v;
	  sm += (i + 1) * v;
	  sm2 = x;
	  ans += x;
	}
    }
  cout << ans << endl;
  return 0;
}
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...