#include #include using namespace std; int main() { int a = 0/*0*/,b = 0/*1*/,k = 0,c = 0, poceta = 0, pocetb = 0, pocetc = 0; cin >> a >> b >> k >> c; if(!(((a >=1 && a <=9) || (b >=1 && b <=9) ||(c >=1 && c <=9))&& k>=0 && k <=1000)) { return 0; } bool *zahrada = new bool[k]; for(int i = 0; i < k; i++){ zahrada[i] = false; poceta++; } int power_2_k = pow(2,k); int iterace =0; while(iterace < power_2_k - 1){ for(int i = 0; i < k; i++){ if(c == b){ if(zahrada[i] == true) pocetb++; } else if ( c == a) { if(zahrada[i] == false) pocetb++; } } for(int i = k-1; i >=0; i--){ if(zahrada[i] == false){ zahrada[i] = true; break; } if(zahrada[i] == true){ zahrada[i] = false; } } iterace++; } int prib = (pocetb + k)%1000000007; int pria = pocetb %1000000007; if(c ==b) cout << prib; else if(c == a) cout << pria; return 0; }