Pagini recente » Cod sursa (job #764519) | Cod sursa (job #2695946) | Cod sursa (job #2722046) | Cod sursa (job #3215670) | Cod sursa (job #3131743)
#include <fstream>
#define mod 666013
using namespace std;
ifstream fin ("kfib.in");
ofstream fout("kfib.out");
int k;
long long a[3][3]={{0,0,0},{0,0,1},{0,1,1}};
long long p[3][3]={{0,0,0},{0,1,0},{0,0,1}};
long long c[3][3];
void inmultire(long long a[][3],long long b[][3],long long c[][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)%mod;
}
for(int i=1;i<=2;i++)
for(int j=1;j<=2;j++)
a[i][j]=c[i][j];
}
int main()
{
fin>>k;
while(k)
{
if(k%2!=0)
inmultire(p,a,c);
k=k/2;
inmultire(a,a,c);
}
fout<<p[2][2];
return 0;
}