Submission #651195

#TimeUsernameProblemLanguageResultExecution timeMemory
651195BrineTwIntergalactic ship (IZhO19_xorsum)C++14
17 / 100
2073 ms2212 KiB
#include <bits/stdc++.h> using namespace std; const int M = 1e9 + 7; struct Update { int l, r, x; }; int mAdd(const int a, const int b) { if (a + b >= M) return a + b - M; if (a + b < 0) return a + b + M; return a + b; } int calculate(vector<int> v, vector<Update>& update, int i) { int sum = 0; for (int j = 0; i; j++, i >>= 1) { if (i & 1) { for (int k = update[j].l; k < update[j].r; k++) { v[k] ^= update[j].x; } } } for (int i = 0; i < v.size(); i++) { int currentTotal = 0; for (int j = i; j < v.size(); j++) { currentTotal += v[j]; sum = mAdd(sum, currentTotal * currentTotal % M); } } return sum; } int main() { int length; cin >> length; vector<int> v(length); for (auto& n: v) cin >> n; int query; cin >> query; vector<Update> update(query); for (auto& [l, r, x]: update) { cin >> l >> r >> x; --l; } int sum = 0; for (int i = 0; i < (1 << query); i++) { sum = mAdd(sum, calculate(v, update, i)); } cout << sum << '\n'; }

Compilation message (stderr)

xorsum.cpp: In function 'int calculate(std::vector<int>, std::vector<Update>&, int)':
xorsum.cpp:28:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   28 |     for (int i = 0; i < v.size(); i++) {
      |                     ~~^~~~~~~~~~
xorsum.cpp:30:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   30 |         for (int j = i; j < v.size(); j++) {
      |                         ~~^~~~~~~~~~
xorsum.cpp: In function 'int main()':
xorsum.cpp:50:16: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   50 |     for (auto& [l, r, x]: update) {
      |                ^
#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...