#pragma GCC optimize("Ofast") #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long int ll; typedef unsigned long long ull; mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count()); ll myRand(ll B) { return (ull)rng() % B; } inline double time() { return static_cast(chrono::duration_cast(chrono::steady_clock::now().time_since_epoch()).count()) * 1e-9; } bool solve(){ int x,y,k,p; cin >> x >> y >> k >> p; int u = (y%2?-1:1); u *= p; if(u == -1) u = 1; else u = 0; int pick = x+y-k; if(pick == 1){ if(y%2 == u or y >= 1) return true; else return false; } else{ if(u == 0){ // -1を全て消化 if((pick+1)/2 >= y) return true; if(pick/2 >= x and k%2 != u) return false; if((pick+1)/2 >= x and k%2 == u) return true; else{ assert(0); return (pick%2 == 1); } } assert(0); return false; } } int main(){ cin.tie(nullptr); ios::sync_with_stdio(false); if(solve()){ cout << "Alice" << endl; } else{ cout << "Bob" << endl; } }