Pagini recente » Cod sursa (job #1649104) | Istoria paginii utilizator/arismiuta | Cod sursa (job #449569) | Cod sursa (job #1657746) | Cod sursa (job #1294991)
#include <fstream>
using namespace std;
const int MOD= 666013;
ifstream in( "kfib.in" );
ofstream out( "kfib.out" );
int f1[2][3], f2[2][3] , b[3][3];
void init()
{
b[1][1]=0;
b[1][2]=1;
b[2][1]=1;
b[2][2]=1;
f1[1][1]= 1;
f1[1][2]= 1;
}
void next_fib()
{
for( int i= 1; i<=1; ++i )
{
for( int j= 1; j<=2; ++j )
{
f2[i][j]= 0;
for( int k= 1; k<=2; ++k )
{
f2[i][j]= (f2[i][j]+f1[i][k]*b[k][j])%MOD;
}
}
}
for( int i= 1; i<=1; ++i )
{
for( int j= 1; j<=2; ++j )
{
swap( f1[i][j], f2[i][j] );
}
}
}
int main( )
{
int K;
in >> K;
init();
if( K==1 )
{
out << "1" << '\n';
return 0;
}
else if ( K==2 )
{
out << "2" << '\n';
return 0;
}
for( int i= 3; i<=K; ++i )
{
next_fib();
}
out << f1[1][2];
return 0;
}