Advertisement
Guest User

QC

a guest
Apr 25th, 2021
230
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.64 KB | None | 0 0
  1. #include<iostream>
  2. #include<math.h>
  3. #include<bits/stdc++.h>
  4. #include<cmath>
  5. #define ll long long int
  6. #define hell 1000000007LL
  7. using namespace std;
  8. ll power(ll x, ll y,ll z){
  9.    
  10.     if(y==0)
  11.      return 1;
  12.     else
  13.     {
  14.         ll p=power(x,y/2,z);
  15.         ll w=(p*p)%z;
  16.         if(y%2==0)
  17.          return w;
  18.         else
  19.         return (x*w)%z;
  20.     }}
  21. int main()
  22. {
  23.     ios_base::sync_with_stdio(false);
  24.     cin.tie(0);
  25.     cout.precision(20);
  26.     ll n;
  27.     cin>>n;
  28.     ll a[n];
  29.     for(int i=0;i<n;i++)
  30.     cin>>a[i];
  31.     ll dp[n][101];
  32.     for(int i=0;i<n;i++)
  33.     {
  34.         for(int j=0;j<101;j++)
  35.         dp[i][j]=0;
  36.     }
  37.     dp[0][a[0]]++;
  38.     for(int i=1;i<n;++i)
  39.     {
  40.         for(int j=0;j<101;j++)
  41.         dp[i][j]=dp[i-1][j];
  42.         dp[i][a[i]]++;
  43.     }
  44.     ll c[101][101];
  45.     for(int i=0;i<101;i++)
  46.     {
  47.         for(int j=0;j<101;j++)
  48.         c[i][j]=i^j;
  49.     }
  50.     ll t;
  51.     cin>>t;
  52.     while(t--)
  53.     {
  54.         ll l,r;
  55.         cin>>l>>r;
  56.         --r;
  57.         --l;
  58.         ll b[101],ans=1;
  59.         for(int i=0;i<101;i++)
  60.         {
  61.             b[i]=0;
  62.             b[i]=dp[r][i];
  63.         }
  64.         if(l>=1)
  65.         {
  66.              for(int i=0;i<101;i++)
  67.             b[i]-=dp[l-1][i];
  68.         }
  69.         for(int i=0;i<101;i++)
  70.         {
  71.             if(b[i]>=2)
  72.             ans=0;
  73.         }
  74.         if(ans>0){
  75.         for(int i=0;i<101;i++)
  76.         {
  77.             for(int j=i+1;j<101;j++)
  78.             {
  79.                
  80.                 if(b[i]*b[j]>0)
  81.                 ans=(ans*power(c[i][j],b[i]*b[j],hell))%hell;
  82.             }
  83.         }}
  84.         cout<<ans%hell<<"\n";
  85.     }}
  86.      
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement