Cod sursa(job #782184)

Utilizator speederPetru Radu speeder Data 26 august 2012 10:48:08
Problema Al k-lea termen Fibonacci Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.16 kb
#include <fstream>
using namespace std;
ifstream f("kfib.in");
ofstream g("kfib.out");
long long  k,a[3][3],b[3][3],c[3][3];
void mult_array(long long a[][3],long long b[][3],long long c[][3])
{
    for(int i=1;i<=2;i++)
        for(int j=1;j<=2;j++)
            for(int m=1;m<=2;m++)
                c[i][j]+=a[i][m]*b[m][j];
}
void cpy_array(long long a[][3],long long c[][3])
{
    for(int i=1;i<=2;i++)
        for(int j=1;j<=2;j++)
        {
            a[i][j]=c[i][j];
            c[i][j]=0;
        }
}
int main()
{
    f>>k;
    for(int i=1;i<=2;i++)
        for(int j=1;j<=2;j++)
        {
            a[i][j]=1;
            b[i][j]=1;
        }
    a[1][1]=0;
    b[1][1]=0;
    for(int i=1;i<k-1;i++)
    {
        mult_array(a,b,c);
        cpy_array(a,c);
        /*for(int i=1;i<=2;i++)
        {
            for(int j=1;j<=2;j++)
                g<<a[i][j]<<' ';
            g<<'\n';
        }
        g<<'\n';*/
    }
    /*for(int i=1;i<=2;i++)
        {
            for(int j=1;j<=2;j++)
                g<<a[i][j]<<' ';
            g<<'\n';
        }*/
    long long t=a[2][2];
    g<<t%666013;
    return 0;
}