Submission #1156267

#TimeUsernameProblemLanguageResultExecution timeMemory
1156267MuhammadSaramIntergalactic ship (IZhO19_xorsum)C++20
0 / 100
49 ms2372 KiB
#include <bits/stdc++.h> using namespace std; #define int long long const int mod = 1e9 + 7, M = 1000, V = 128; int now[M][V],now1[M][V],su[M]; signed main() { int n; cin>>n; int a[n]; for (int i=0;i<n;i++) cin>>a[i],now[i][a[i]]=1; int q; cin>>q; while (q--) { int l,r,x; cin>>l>>r>>x; for (int i=l-1;i<r;i++) { for (int y=0;y<V;y++) now1[i][x^y]+=now[i][y],now1[i][x^y]-=(now1[i][x^y]>=mod?mod:0); for (int y=0;y<V;y++) now[i][y]+=now1[i][y],now[i][y]-=(now[i][y]>=mod?mod:0),now1[i][y]=0; } } int ans=0; for (int i=0;i<n;i++) for (int y=0;y<V;y++) su[i]=(su[i]+now[i][y]*y)%mod,ans=(ans+now[i][y]*y*y%mod*(i+1)*(n-i))%mod; for (int i=0;i<n;i++) for (int j=i+1;j<n;j++) ans=(ans+2*su[i]*su[j]%mod*(i+1)*(n-j))%mod; 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...