Pagini recente » Cod sursa (job #2903539) | Cod sursa (job #369670) | Cod sursa (job #1305925) | Cod sursa (job #2709789) | Cod sursa (job #2144001)
//
// main.cpp
// p2sah
//
// Created by Radu Costache on 25/02/2018.
// Copyright © 2018 Radu Costache. All rights reserved.
//
#include <fstream>
#define MOD 666013
using namespace std;
ifstream f("kfib.in");
ofstream g("kfib.out");
long long n,p,k,c = 3,a = 1,A,B,C,x,y,z;
void Mult(long long a[2][2],long long b[2][2]){
int i,j;
long long aux[4][4];
for(i=0;i<2;i++)
for(j=0;j<2;j++)
{aux[i][j]=0;
for(int q=0;q<2;q++)
aux[i][j]+=a[i][q]*b[q][j]%MOD;}
for(i=0;i<2;i++)
for(j=0;j<2;j++)
a[i][j]=aux[i][j];}
void exp(long long T[2][2],int n){
if(n == 0 || n == 1)return;
long long M[2][2] = {{1,1},{1,0}};
exp(T,n/2);
Mult(T,T);
if(n % 2)
Mult(T,M);
}
long long tribonacci(int n){
long long T[2][2] = {{1,1},{1,0}};
if(n == 0 || n == 1){
return 0;
}
else {
exp(T, n + 2);
return T[0][0];
}
}
int main(int argc, const char * argv[]) {
// insert code here...
f >> n;
g << tribonacci(n);
return 0;
}