#include using namespace std; ifstream fin("meh.in"); ofstream fout("meh.out"); struct cub { int l, cul; }; cub v[20]; int n, H, st[20],ap[20],sum[20]; void afisare(int k) { for(int i=1;i<=k;i++) fout<1 && v[st[k]].l>v[st[k-1]].l) return 0; if(v[st[k]].cul==v[st[k-1]].cul) return 0; if(sum[k-1]+v[st[k]].l<=H){ sum[k] = sum[k-1] + v[st[k]].l; return 1; } return 0; } // Uitee!! Partea asta de aici trebuie inlocuita cu un vector de aparitii! //In loc sa umble prin stiva de fiecare data cand e apelat valid, e mai eficient sa verifici un vector. Ti-am modificat in functia back()! // for (int i=1; i>n>>H; for(int i=1;i<=n;i++) fin>>v[i].l>>v[i].cul; back(1); return 0; }