PIastrelle execution triggere with signal 9

Ciao ragazzi stavo risolvendo piastrellature con una banale ricorsiva, però sull’ultimo subtask mi da execution triggered with signal 9, ma non mi sembra ci sia della memoria non allocata: vi allego il codice

    #include <bits/stdc++.h>
    using namespace std;
    string m1x2 = "[OOOO]";
    string m1x1 = "[O]";
    vector<vector<string>> print;
    void piastrelle(int N,vector<string> v){
        if(N<=0)print.push_back(v);
        else if(N==1){
                v.push_back(m1x1);
                print.push_back(v);
        }
        else{
            v.push_back(m1x1);
            piastrelle(N-1,v);
            v.pop_back();
            v.push_back(m1x2);
            piastrelle(N-2,v);
        }
    }
    int main()
    {
        ifstream in("input.txt");
        ofstream out("output.txt");
        int n;
        in >> n;
        vector<string> v;
        v.push_back("");
        piastrelle(n,v);
        sort(print.rbegin(),print.rend());
        for(auto it : print){
            for(auto it2 : it)out << it2;
            out << endl;
        }
        return 0;
    }

P.S. avete materiale sulla ricorsione e su dp?

A parte che non capisco come faccia a compilarti quel codice, in ogni caso forse ti va davvero fuori memoria, prova a non salvarti le stringhe da stampare e a stamparle direttamente nella ricorsiva.
Come risorse in generale ti consiglio i soliti “competitive programming 3”, “competitive programmer’s handbook”, e-maxx.ru
In ogni caso se vuoi materiale di competitive programming su qualche argomento, di solito basta cercare argomento+" codeforces" e trovi dei blog. like this :grinning:

1 Mi Piace

ok, grazie, ma perchè non dovrebbe compilare ahah?

Ah niente, l’avevo visto prima dell’edit. Ora va?