Cod sursa(job #2404945)

Utilizator TudorP2006Popescu Tudor TudorP2006 Data 13 aprilie 2019 16:55:47
Problema Nunta Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <fstream>

using namespace std;
ifstream fin("nunta.in");
ofstream fout("nunta.out");
int matrix[3][500], l[3];
void adunare(int i)
{
    int j = i + 1;
    i%= 3;
    j%= 3;
    int k;
    if (i + j == 3)
    {
        k = 0;
    }
    if (i + j == 2)
    {
        k = 1;
    }
    if (i + j == 1)
    {
        k = 2;
    }
    int trans = 0;
    l[k] = max(l[i], l[j]);
    for (int z = 0; z < max(l[i], l[j]); z++)
    {
        trans+= matrix[i][z] + matrix[j][z];
        matrix[k][z] = trans % 10;
        trans/= 10;
    }
    if (trans > 0)
    {
        matrix[k][l[k]] = trans;
        l[k]++;
    }
}
int main()
{
    int n;
    fin >> n;
    l[0] = l[1] = 1;
    matrix[0][0] = 1;
    matrix[1][0] = 2;
    for (int i = 0; i < n; i++)
    {
        adunare(i);
    }
    n%= 3;
    if (n == 0)
    {
        n = 3;
    }
    n--;
    for (int i = l[n] - 1; i >= 0; i--)
    {
        fout << matrix[n][i];
    }
    return 0;
}