Pagini recente » Cod sursa (job #658172) | Cod sursa (job #2924288) | Cod sursa (job #1342077) | Cod sursa (job #1044958) | Cod sursa (job #456823)
Cod sursa(job #456823)
#include <stdio.h>
#include <stdint.h>
#define MOD 666013
typedef struct {
long long int a, b, c, d;
}Mat;
Mat multiply(Mat x, Mat y) {
Mat z;
z.a = (x.a * y.a + x.b * y.c) % MOD;
z.b = (x.a * y.b + x.b * y.d) % MOD;
z.c = (x.c * y.a + x.d * y.c) % MOD;
z.d = (x.c * y.b + x.d * y.d) % MOD;
return z;
}
Mat power(Mat x, int n) {
if(n == 0) {
Mat r = {1, 0, 0, 1};
return r;
}
Mat r = power(x, n/2);
r = multiply(r, r);
if(n%2)
r = multiply(r, x);
return r;
}
int main() {
Mat a = {0, 1, 1, 1};
int n;
scanf("%d", &n);
a = power(a, n);
printf("%lld\n", a.b % MOD);
return 0;
}