Cod sursa(job #2192837)

Utilizator mihnealookmihnea zamfir mihnealook Data 7 aprilie 2018 14:31:33
Problema Al k-lea termen Fibonacci Scor 5
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <iostream>
#include <fstream>

#define MOD 666013

using namespace std;

ifstream f("kfib.in");
ofstream g("kfib.out");

void inmultire(long long F[2][2], long long M[2][2])
{
    long long a =  (F[0][0]*M[0][0] + F[0][1]*M[1][0]) % MOD;
    long long b =  (F[0][0]*M[0][1] + F[0][1]*M[1][1]) % MOD;
    long long c =  (F[1][0]*M[0][0] + F[1][1]*M[1][0]) % MOD;
    long long d =  (F[1][0]*M[0][1] + F[1][1]*M[1][1]) % MOD;
    F[0][0] = a;
    F[0][1] = b;
    F[1][0] = c;
    F[1][1] = d;
}

int main()
{
    long long k, F[2][2], M[2][2];
    f >> k;
    k--;
    F[0][0] = 1;
    F[0][1] = 1;
    F[1][0] = 1;
    F[1][1] = 0;
    M[0][0] = 1;
    M[0][1] = 1;
    M[1][0] = 1;
    M[1][1] = 0;
    for (int i = 1; i < k; i++)
      inmultire(F, M);
    g << F[0][0];
}