제출 #1156523

#제출 시각아이디문제언어결과실행 시간메모리
1156523Faisal_SaqibIntergalactic ship (IZhO19_xorsum)C++20
0 / 100
2096 ms5700 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define ull unsigned long long #define vll vector<ll> #define pll pair<ll,ll> #define pb push_back #define all(x) x.begin(),x.end() #define rall(x) x.rbegin(),x.rend() template<typename T> using minpq = priority_queue<T, vector<T>, greater<T>>; template<typename T> using maxpq = priority_queue<T, vector<T>, less<T>>; void input(vll&q) { for(auto&i:q)cin>>i; } void pyn(bool x) { cout<<(x?"YES":"NO")<<endl; } void pYN(bool x) { cout<<(x?"Yes":"No")<<endl; } void pAB(bool x) { cout<<(x?"Alice":"Bob")<<endl; } const ll Q=1e5+10,mod=1e9+7,N=1e3+10; ll a[N],b[N],pre[N]; vll query[Q]; void solve() { ll n; cin>>n; for(int i=1;i<=n;i++)cin>>a[i]; ll q; cin>>q; for(int i=1;i<=q;i++) { ll l,r,x; cin>>l>>r>>x; query[i]={l,r,x}; } ll ans=0; ll mp=(1ll<<q); for(int mask=0;mask<mp;mask++) { // for(int i=1;i<=n;i++)b[i]=a[i]; ll cp=mask; for(int i=1;i<=q;i++) { if(cp&1) { b[query[i][0]]^=query[i][2]; b[query[i][1]+1]^=query[i][2]; } cp>>=1; } for(int i=1;i<=n;i++)b[i]^=b[i-1],pre[i]=((a[i]^b[i])+pre[i-1])%mod; ll tot=0,tot1=0; for(int i=1;i<=n;i++) { ll sq=(pre[i]*pre[i])%mod; ll sm=(sq*i + tot)%mod; sm-=(pre[i]*2ll*tot1)%mod; sm=((sm%mod)+mod)%mod; ans=(ans+sm)%mod; tot1=(tot1+pre[i])%mod; tot=(tot+sq)%mod; } // (pre[j]-pre[i])**2 // (x-y) ** 2 // (x-y) * (x-y) // x**2 - 2*x*y + (y**2) // x**2 + (y**2) - 2*x*y } cout<<ans<<endl; } int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int t=1; // cin>>t; while(t--)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...