Pagini recente » Cod sursa (job #2516631) | Cod sursa (job #1649168) | Cod sursa (job #2010818) | Cod sursa (job #2055109) | Cod sursa (job #1920179)
#include <iostream>
#include <vector>
#include <fstream>
#define MOD 666013
#define K 2
using namespace std;
ifstream f("kfib.in");
ofstream g("kfib.out");
vector<vector<long long > > A (K+1,vector<long long>(K+1)),B(K+1,vector<long long>(K+1)),AUX(K+1,vector<long long>(K+1));
int n;
vector<vector<long long> > inmultire(vector<vector<long long> > A,vector<vector<long long> > B)
{
vector<vector<long long> >C(K+1,vector<long long>(K+1));
for(int k=1;k<=K;k++)
for(int i=1;i<=K;i++)
for(int j=1;j<=K;j++)
C[i][j]=(C[i][j]+A[i][k]*B[k][j])%MOD;
return C;
}
int main()
{
f >> n;
A[1][1]=1;
A[1][2]=1;
B[2][1]=1;
B[1][2]=1;
B[2][2]=1;
n--;
while(n)
{
if(n%2)
{
A=inmultire(A,B);
n--;
}
B=inmultire(B,B);
n=n/2;
}
g << A[1][1] << "\n";
return 0;
}