unsigned long long fibb(unsigned long long Solve)
{
if (Solve==1) return 1;
unsigned long long Even = 0;
unsigned long long Odd = 1;
unsigned long long Loops = Solve/16+1;
switch (Solve%16/2) {
do {
case 0: Even+=Odd; Odd+=Even;
case 7: Even+=Odd; Odd+=Even;
case 6: Even+=Odd; Odd+=Even;
case 5: Even+=Odd; Odd+=Even;
case 4: Even+=Odd; Odd+=Even;
case 3: Even+=Odd; Odd+=Even;
case 2: Even+=Odd; Odd+=Even;
case 1: Even+=Odd; Odd+=Even;
}while(--Loops);
};
return (Solve&1 ? Odd+Even : Odd);
}
#include <iostream>
int main() {
std::cout << fibb(59);
}
CnVuc2lnbmVkIGxvbmcgbG9uZyBmaWJiKHVuc2lnbmVkIGxvbmcgbG9uZyBTb2x2ZSkKewoJaWYgKFNvbHZlPT0xKSByZXR1cm4gMTsKCXVuc2lnbmVkIGxvbmcgbG9uZyBFdmVuID0gMDsKCXVuc2lnbmVkIGxvbmcgbG9uZyBPZGQgPSAxOwoJdW5zaWduZWQgbG9uZyBsb25nIExvb3BzID0gU29sdmUvMTYrMTsKCXN3aXRjaCAoU29sdmUlMTYvMikgewoJCWRvIHsKCWNhc2UgMDogRXZlbis9T2RkOyBPZGQrPUV2ZW47CgljYXNlIDc6IEV2ZW4rPU9kZDsgT2RkKz1FdmVuOwoJY2FzZSA2OiBFdmVuKz1PZGQ7IE9kZCs9RXZlbjsKCWNhc2UgNTogRXZlbis9T2RkOyBPZGQrPUV2ZW47CgljYXNlIDQ6IEV2ZW4rPU9kZDsgT2RkKz1FdmVuOwoJY2FzZSAzOiBFdmVuKz1PZGQ7IE9kZCs9RXZlbjsKCWNhc2UgMjogRXZlbis9T2RkOyBPZGQrPUV2ZW47CgljYXNlIDE6IEV2ZW4rPU9kZDsgT2RkKz1FdmVuOwoJCX13aGlsZSgtLUxvb3BzKTsKCX07CglyZXR1cm4gKFNvbHZlJjEgPyBPZGQrRXZlbiA6IE9kZCk7Cn0KI2luY2x1ZGUgPGlvc3RyZWFtPgppbnQgbWFpbigpIHsKICAgIHN0ZDo6Y291dCA8PCBmaWJiKDU5KTsKfQ==