#include #include #define skocNaRiadokPyco goto #define akTotoPlatiTakSpravHento if #define zvacsiCiselkoOJedna ++ #define akSaRovna == #define vratSpatSpravnyVysledokTedaDufamZeSpravnyAkNieTakToNebudeFungovat return #define vytlacNaToCierneOkienkoCoSaOtvaraKedToSpustim cout #define dakujem endl #define takeNormalneCislo int #define dlhsieCisloAkoTakeToNormalneCislo long #define konst const #define nacitajToCoJozoNapiseDoCiernehoOkienka cin using namespace std; konst dlhsieCisloAkoTakeToNormalneCislo dlhsieCisloAkoTakeToNormalneCislo prime = 1000000007; dlhsieCisloAkoTakeToNormalneCislo dlhsieCisloAkoTakeToNormalneCislo myPow(takeNormalneCislo x, takeNormalneCislo n) { takeNormalneCislo i = 0; dlhsieCisloAkoTakeToNormalneCislo dlhsieCisloAkoTakeToNormalneCislo out=1; zaciatok: out=(out*x)%prime; i zvacsiCiselkoOJedna; akTotoPlatiTakSpravHento(i>a>>b>>k>>c; akTotoPlatiTakSpravHento(a akSaRovna c || b akSaRovna c) { out = (myPow(2, k-1)*k)%prime; } akTotoPlatiTakSpravHento(a akSaRovna b && a akSaRovna c) out=k; vytlacNaToCierneOkienkoCoSaOtvaraKedToSpustim<