제출 #1156300

#제출 시각아이디문제언어결과실행 시간메모리
1156300MuhammadSaramIntergalactic ship (IZhO19_xorsum)C++20
17 / 100
580 ms246648 KiB
#include <bits/stdc++.h> using namespace std; #define int long long const int mod = 1e9 + 7, V = 32; signed main() { int n; cin>>n; int a[n]; for (int i=0;i<n;i++) cin>>a[i]; int q; cin>>q; if (q<=20) { int v[n][(1<<q)]; for (int i=0;i<n;i++) v[i][0]=a[i]; int l[q],r[q],x[q]; for (int i=0;i<q;i++) cin>>l[i]>>r[i]>>x[i]; for (int m=1;m<(1<<q);m++) { int b=31-__builtin_clz(m); for (int i=0;i<n;i++) v[i][m]=v[i][m^(1<<b)]; for (int i=l[b]-1;i<r[b];i++) v[i][m]^=x[b]; } int ans=0; for (int m=0;m<(1<<q);m++) { int pre[n]; pre[0]=v[0][m]; for (int i=1;i<n;i++) pre[i]=pre[i-1]+v[i][m]*(i+1); for (int i=1;i<n;i++) ans=(ans+pre[i-1]*v[i][m]*(n-i)*2)%mod; for (int i=0;i<n;i++) ans=(ans+v[i][m]*(n-i)*(i+1)*v[i][m])%mod; } cout<<ans<<endl; } else cout<<0<<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...