Pagini recente » Cod sursa (job #2360359) | Cod sursa (job #2053381) | Cod sursa (job #2772393) | Cod sursa (job #1686131) | Cod sursa (job #3209593)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("ciclu.in");
ofstream fout("ciclu.out");
const int MOD = 666013;
int n;
struct matrix {
long long a, b, c, d;
};
matrix A = {1, 1, 1, 0};
matrix mult(matrix p, matrix q) {
return {
(p.a * q.a + p.b * q.c) % MOD,
(p.a * q.b + p.b * q.d) % MOD,
(p.c * q.a + p.d * q.c) % MOD,
(p.c * q.b + p.d * q.d) % MOD,
};
}
matrix putere(matrix a, int n) {
matrix res = {1, 0, 0, 1};
while (n > 0) {
if (n & 1) {
res = mult(res, a);
}
a = mult(a, a);
n /= 2;
}
return res;
}
int main()
{
fin >> n;
matrix F = putere(A, n - 1);
fout << F.a;
return 0;
}