Pagini recente » Cod sursa (job #2314242) | Cod sursa (job #329715) | Cod sursa (job #2319063) | Cod sursa (job #1552426) | Cod sursa (job #2398101)
#include <fstream>
#include <iostream>
#define MOD 666013
using namespace std;
ifstream fin("kfib.in");
ofstream fout("kfib.out");
long long n,a[3][3],p[3][3],aux[3][3];
inline void prod(long long a[3][3], long long b[3][3], long long c[3][3]){
for(long long i=1;i<=2;i++){
for(long long j=1;j<=2;j++){
c[i][j]=0;
for(long long k=1;k<=2;k++) {
c[i][j]+=a[i][k]*b[k][j];
c[i][j] %= MOD;
}
}
}
}
inline void atrib(long long a[3][3],long long b[3][3]){
for(long long i=1;i<=2;i++)
for(long long j=1;j<=2;j++)
b[i][j]=a[i][j];
}
int main(){
fin>>n;
p[1][1]=1;
p[2][2]=1;
a[1][1]=1;
a[1][2]=1;
a[2][1]=1;
prod(a,a,aux);
/// cout<<aux[1][1]<<" "<<aux[1][2]<<"\n"<<aux[2][1]<<" "<<aux[2][2]<<"\n\n";
n-=2;
while(n!=0){
if(n%2==1){
prod(p,a,aux);
atrib(aux,p);
}
prod(a,a,aux);
atrib(aux,a);
n/=2;
}
fout<<(p[1][1]+p[1][2]) % MOD;
return 0;
}