Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<math.h>
- #include<bits/stdc++.h>
- #include<cmath>
- #define ll long long int
- #define hell 1000000007LL
- using namespace std;
- ll power(ll x, ll y,ll z){
- if(y==0)
- return 1;
- else
- {
- ll p=power(x,y/2,z);
- ll w=(p*p)%z;
- if(y%2==0)
- return w;
- else
- return (x*w)%z;
- }}
- int main()
- {
- ios_base::sync_with_stdio(false);
- cin.tie(0);
- cout.precision(20);
- ll n;
- cin>>n;
- ll a[n];
- for(int i=0;i<n;i++)
- cin>>a[i];
- ll dp[n][101];
- for(int i=0;i<n;i++)
- {
- for(int j=0;j<101;j++)
- dp[i][j]=0;
- }
- dp[0][a[0]]++;
- for(int i=1;i<n;++i)
- {
- for(int j=0;j<101;j++)
- dp[i][j]=dp[i-1][j];
- dp[i][a[i]]++;
- }
- ll c[101][101];
- for(int i=0;i<101;i++)
- {
- for(int j=0;j<101;j++)
- c[i][j]=i^j;
- }
- ll t;
- cin>>t;
- while(t--)
- {
- ll l,r;
- cin>>l>>r;
- --r;
- --l;
- ll b[101],ans=1;
- for(int i=0;i<101;i++)
- {
- b[i]=0;
- b[i]=dp[r][i];
- }
- if(l>=1)
- {
- for(int i=0;i<101;i++)
- b[i]-=dp[l-1][i];
- }
- for(int i=0;i<101;i++)
- {
- if(b[i]>=2)
- ans=0;
- }
- if(ans>0){
- for(int i=0;i<101;i++)
- {
- for(int j=i+1;j<101;j++)
- {
- if(b[i]*b[j]>0)
- ans=(ans*power(c[i][j],b[i]*b[j],hell))%hell;
- }
- }}
- cout<<ans%hell<<"\n";
- }}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement