Cod sursa(job #3310213)

Utilizator raulthestormIlie Raul Ionut raulthestorm Data 12 septembrie 2025 09:42:39
Problema Nunta Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <fstream>
#include <vector>
#include <iomanip>

using namespace std;
const int BAZA = 10;

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 % BAZA;
        T /= BAZA;
    }
    //
    if(T) A.push_back(1);
}

void afis(vector<int> &A)
{
    g << A.back();
    for(int i = A.size() - 2; i >= 0; i--)
        g << setw(7) << setfill('0') << A[i];
}

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;
}