Submission #1156541

#TimeUsernameProblemLanguageResultExecution timeMemory
1156541AbdullahIshfaqIntergalactic ship (IZhO19_xorsum)C++20
0 / 100
287 ms512 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define MOD 1000000007
ll a[105], t[105], pre[105], l[105], r[105], x[105];
void solve(){
	ll n, q, res;
	cin >> n;
    for(int i = 1; i <= n; i++){
		cin >> a[i];
	}
    cin >> q;
    for(int i = 0; i < q; i++){
		cin >> l[i] >> r[i] >> x[i];
	}
    for (int msk = 0; msk < (1 << q); msk++){
        ll sm = 0;
        for(int i = 1; i <= n; i++){
			t[i] = a[i];
		}
        for(int i = 0; i < q; i ++){
			if(msk & (1 << i)){
				for(int j = l[i]; j <= r[i]; j++){
					t[j] ^= x[i];
				}
			}
		}
        for(int i = 1; i <= n; i++){
			pre[i] = (pre[i - 1] + t[i]) % MOD;
			res = (res + (((n + 1) * pre[i]) % MOD * pre[i])%MOD);
			sm += pre[i];
		}
		sm %= MOD;
        sm = ((sm * sm * -1) % MOD + MOD) % MOD;
        res = (res + sm) % MOD;
    }
    cout << res << '\n';
}
int main() {
	ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	int tests = 1;
	// cin >> tests;
	for(int i = 1; i <= tests; i ++){
		solve();
	}
}
#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...