Pagini recente » Cod sursa (job #2915189) | Cod sursa (job #1845694) | Cod sursa (job #592395) | Cod sursa (job #2541487) | Cod sursa (job #2333991)
#include <fstream>
const int MOD = 666013;
std::ifstream in("kfib.in");
std::ofstream out("kfib.out");
void atrib(int a[2][2], int b[2][2]) {
for (int i = 0; i < 2; ++i)
for (int j = 0; j < 2; ++j)
a[i][j] = b[i][j];
}
void produs(int a[2][2], int b[2][2]) {
int c[2][2] = {0};
for (int i = 0; i < 2; ++i)
for (int j = 0; j < 2; ++j)
for (int k = 0; k < 2; ++k)
c[i][j] = (c[i][j] + 1LL * a[i][k] * b[k][j]) % MOD;
atrib(a, c);
}
void putere(int a[2][2], int p) {
int res[2][2];
atrib(res, a);
--p;
for (; p; p >>= 1) {
if (p & 1)
produs(res, a);
produs(a, a);
}
atrib(a, res);
}
int main() {
int k;
in >> k;
int M[2][2] = {{1,1},{1,0}};
putere(M, k - 1);
out << M[0][0];
}