For this Question: You are given N independent variables X1, X2. . Xn. You have to find the number of solutions of equation : 
X1 (xor) X2 (xor) X3. (xor) Xn = K (Xor of all variables should be equal to K)
0 <= Xi <= 2^D - 1
You will be given N, K and D as input.
As the answer can be very large report answer modulo 1000000007First line of input contains three space seperated integers N, D, K

1 <= N <= 100000000000
1 <= D <= 100000000000
1 <= K <= 100000000000Find the number of solutions of equation modulo 1000000007.Sample input 1
2 2 1

Sample output 1
4

Explaination : (x1=0, x2=1) (x1=1, x2=0) (x1=2, x3=3) (x1=3, x2=2) 4 solutions, I have written this Solution Code: #include<bits/stdc++.h>
using namespace std;
#define ll long long
#define VV vector
#define pb push_back
#define bitc  __builtin_popcountll
#define m_p make_pair
#define inf 1e8+1
#define eps 0.000000000001
#define fastio ios_base::sync_with_stdio(false);cin.tie(NULL);
string char_to_str(char c){string tem(1,c);return tem;}
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
template<class T>//usage rand<long long>()
T rand() {
    return uniform_int_distribution<T>()(rng);
}
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
 
typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> oset;
// string to integer stoi()
// string to long long stoll()
// string.substr(position,length);
// integer to string to_string();
 
//////////////
#define all(x) x.begin(),x.end()
#define S second
#define F first
#define sz(x) ((long long)x.size())
#define int long long  
#define f80 __float128
#define pii pair<int,int>
/////////////
 
long long powerm(long long x, unsigned long long y, long long p) 
{ 
    long long res = 1;
    x = x % p;
    while (y > 0) 
    { 
        if (y & 1) 
            res = (res*x) % p; 
        y = y>>1;
        x = (x*x) % p;   
    } 
    return res; 
} 
signed main()
{
	fastio;
	
	int n,k,d;
	cin>>n>>d>>k;
	int mo=1000000007;
	if(d>60)
		cout<<powerm(powerm(2,d,mo),n-1,mo);
	else
	{
		if(k<(1ll<<d))
			cout<<powerm(powerm(2,d,mo),n-1,mo);
		else
			cout<<0;

	}
}, In this Programming Language: C++, Now tell me if this Code is compilable or not?