제출 #1062425

#제출 시각아이디문제언어결과실행 시간메모리
1062425kunzaZa183Intergalactic ship (IZhO19_xorsum)C++17
9 / 100
2073 ms1616 KiB
#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9 + 7;
int32_t main() {
  // cin.tie(0)->sync_with_stdio(0);
  // cin.exceptions(cin.failbit);
  int n;
  cin >> n;
  vector<int> vi(n);
  for (auto &a : vi)
    cin >> a;

  struct qry {
    int l, r, x;
  };
  int qs;
  cin >> qs;
  vector<qry> vq(qs);
  for (auto &a : vq) {
    cin >> a.l >> a.r >> a.x;
    a.l--, a.r--;
  }

  int sm = 0;
  // cout << "X\n";
  for (int i = 0; i < (1 << qs); i++) {
    vector<int> tmp(vi);
    for (int j = 0; j < qs; j++)
      if (i & (1 << j)) {
        for (int k = vq[j].l; k <= vq[j].r; k++)
          tmp[k] = tmp[k] ^ vq[j].x;
      }

    for (int j = 0; j < n; j++) {
      for (int k = j; k < n; k++) {
        int curs = 0;
        for (int l = j; l <= k; l++) {
          curs += tmp[l];
          curs %= mod;
        }
        sm += curs * curs % mod;
        sm %= mod;
      }
    }
  }

  cout << sm << "\n";
}
#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...