Cod sursa(job #3310217)

Utilizator raulthestormIlie Raul Ionut raulthestorm Data 12 septembrie 2025 09:49:15
Problema Nunta Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>
#include <vector>

using namespace std;

int n;
vector<int> A, B;

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

void adunare(vector<int> &A, vector<int> &B) /// A+=B
{
    int T = 0;
    if(A.size() < B.size()) A.resize(B.size());
    else B.resize(A.size());
    //
    for(unsigned int i = 0; i < A.size(); i++)
    {
        T += A[i] + B[i];
        A[i] = T % 10;
        T /= 10;
    }
    //
    if(T) A.push_back(1);
}

void afis(vector<int> &A)
{
    for(auto it = B.rbegin(); it != B.rend(); ++it)
        g << *it;
}

void fibo()
{
    if(n < 3)
    {
        g << n;
        return;
    }
    //
    A.push_back(1);
    B.push_back(2);
    for(int i = 3; i <= n; i++)
    {
        adunare(A, B);
        A.swap(B);
    }
}

int main()
{
    f >> n;
    fibo();
    afis(B);
    f.close();
    g.close();
    return 0;
}