Pagini recente » Cod sursa (job #2013737) | Cod sursa (job #1937392) | Cod sursa (job #1528725) | Cod sursa (job #60757) | Cod sursa (job #3192617)
#include <bits/stdc++.h>
using namespace std;
ifstream f("kfib.in");
ofstream g("kfib.out");
const int MOD=666013;
int n,a[2][2],ans[2][2];
void initialization()
{
a[0][0]=0;
a[0][1]=a[1][0]=a[1][1]=1;
ans[1][0]=ans[1][1]=0;
ans[0][0]=ans[0][1]=1;
}
void multiplication(int a[2][2],int b[2][2])
{
int c[2][2]= {};
for(int i=0; i<2; i++)
for(int j=0; j<2; j++)
for(int k=0; k<2; k++)
c[i][j]=(c[i][j]+(1LL*a[i][k]*b[k][j])%MOD)%MOD;
for(int i=0; i<2; i++)
for(int j=0; j<2; j++)
a[i][j]=c[i][j];
}
void fast_exp(int power)
{
while(power)
{
if(power%2)
multiplication(ans,a);
multiplication(a,a);
power/=2;
}
}
int main()
{
f>>n;
initialization();
fast_exp(n-1);
g<<ans[0][0];
return 0;
}