Cod sursa(job #2973816)

Utilizator VmanDuta Vlad Vman Data 2 februarie 2023 08:21:44
Problema Nunta Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

#define BASE 1000

int main() {
    freopen("nunta.in", "r", stdin);
    freopen("nunta.out", "w", stdout);
    
    int n;
    cin >> n;
    vector<int> *f0 = new vector<int>;
    f0->push_back(1);
    vector<int> *f1 = new vector<int>();
    f1->push_back(1);
    for (int i = 2; i <= n; ++i) {
        vector<int> *f = new vector<int>();
        int s = 0;
        for (int k = 0; k < f0->size(); ++k) {
            s = s + (*f0)[k] + (*f1)[k];
            f->push_back(s % BASE);
            s /= BASE;
        }
        if (f1->size() > f0->size()) {
            s = s + (*f1->rbegin());
            f->push_back(s % BASE);
            s /= BASE;
        }
        if (s) {
            f->push_back(s);
        }
        delete(f0);
        f0 = f1;
        f1 = f;
    }
    
    reverse(f1->begin(), f1->end());
    for (auto it : *f1) {
        cout << it;
    }
    
    return 0;
}