Cod sursa(job #2639396)

Utilizator Catalin007Botezat Catalin Catalin007 Data 1 august 2020 21:16:15
Problema Al k-lea termen Fibonacci Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ifstream fin("kfib.in");
ofstream fout("kfib.out");
ll n, mod=666013;
int  I[2][2] = {{1, 0}, {0, 1}},a[2][2] = {{1, 1}, {1, 0}};
void mult(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++)
        c[i][j]=0;
for(int i=0;i<2;i++)
    for(int j=0;j<2;j++)
    for(int k=0;k<2;k++)
    c[i][j]+=(a[i][k]*b[k][j])%mod;
 for(int i=0;i<2;i++)
    for(int j=0;j<2;j++)
        a[i][j]=c[i][j];
}
void put( int t){
while(t>0){
    if(t%2==0)
{
    mult(a,a);
    t/=2;
}
else{
    mult(I,a);
    t--;
}
}
}
int main()
{
    fin>>n;

put(n-1);
fout<<I[0][0];

    return 0;
}