Pagini recente » Cod sursa (job #1654179) | Cod sursa (job #2469272) | Cod sursa (job #1414887) | Cod sursa (job #2505460) | Cod sursa (job #2802160)
#include <bits/stdc++.h>
#define mod 666013
using namespace std;
ifstream f("kfib.in");
ofstream g("kfib.out");
long long sol[3][3], aux[3][3];
int n;
void inmultireMatrice(long long a[3][3], long long b[3][3])
{
long long c[3][3];
for(int i = 1; i <= 2; i++)
for(int j = 1; j <= 2; j++)
{
c[i][j] = 0;
for(int k = 1; k <= 2; k++)
c[i][j] = (c[i][j] + a[i][k] * b[k][j]) % mod;
}
for(int i = 1; i <= 2; i++)
for(int j = 1; j <= 2; j++)
a[i][j] = c[i][j];
}
int main()
{
f >> n;
if(n < 3)
g << 1;
else
{
n -= 2;
aux[1][1] = aux[1][2] = aux[2][1] = 1;
sol[1][1] = sol[2][2] = 1;
for(; n; n /= 2)
{
if(n & 1) // n impar
inmultireMatrice(sol, aux);
inmultireMatrice(aux, aux);
}
g << (sol[1][1] + sol[1][2]) % mod;
}
return 0;
}