Pagini recente » Cod sursa (job #2326952) | Cod sursa (job #2935983) | Cod sursa (job #2675630) | Cod sursa (job #1508246) | Cod sursa (job #3234969)
#include <fstream>
#define mod 666013
using namespace std;
ifstream fin ("kfib.in");
ofstream fout ("kfib.out");
int n,p;
int mat[2][2]= {{1,0},{0,0}},fib[2][2]= {{1,1},{1,0}};
void prod (int a[2][2],int b[2][2])
{
int c[2][2]= {{0,0},{0,0}};
for (int i=0; i<2; i++)
{
for (int j=0; j<2; j++)
{
int sum=0;
for (int g=0; g<2; g++)
sum=(sum+1ll*a[i][g]*b[g][j])%mod;
c[i][j]=sum;
}
}
for (int i=0; i<2; i++)
{
for (int j=0; j<2; j++)
a[i][j]=c[i][j];
}
}
int main()
{
fin>>n;
if (n==0)
{
fout<<0;
return 0;
}
if (n==1)
{
fout<<1;
return 0;
}
n--;
for (p=0; (1<<p)<=n; p++)
{
if ((n>>p)&1)
prod (mat,fib);
prod (fib,fib);
}
fout<<mat[0][0];
return 0;
}