Cerința
Se citesc două numere naturale n
și m
. Afișați în ordine lexicografică toate submulțimile cu m
elemente ale mulțimii {1, 2, ..., n}
în care nu există două elemente pare alăturate.
Date de intrare
Programul citește de la tastatură numerele n
și m
.
Date de ieșire
Programul va afișa pe ecran submulțimile cerute, câte una pe fiecare rand și având elementele separate prin câte un spaţiu.
Restricții și precizări
1 ≤ m < n ≤ 20
Exemplu
Intrare
5 3
Ieșire
1 2 3 1 2 5 1 3 4 1 3 5 1 4 5 2 3 4 2 3 5 3 4 5
Explicație
Numrele 2
și 4
nu apar pe poziții alăturate.
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema combinari2:
#include <iostream>
using namespace std;
int n;///cardinalul multimii
int m;///cate se iau
int X[21];///solutia
void afisare()
{///afisarea solutiei
for(int i=1;i<=m;i++)
cout<<X[i]<<" ";
cout<<"\n";
}
void back(int k)
{
for(int i=X[k-1]+1;i<=n;i++)
{ ///incep de la elementul anterior +1
X[k]=i;///il pun in solutie
if(k==1 || X[k]%2+X[k-1]%2!=0) ///sa nu fie 2 pare alaturate
{
if(k==m)///am pus m => solutie
afisare();
else back(k+1);///trec la pasul urmator
}
}
}
int main()
{
cin>>n>>m;
back(1);
return 0;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #3152 combinari2
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #3152 combinari2 de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!