You are on page 1of 1

Partitii numar

#include<fstream>
#include<algorithm>
using namespace std;
ifstream fin ("partitiinumar4.in");
ofstream fout("partitiinumar4.out");
int n,m,x[41],a[41],s;
void citire(){
fin>>n;fin>>m;
for (int i=1;i<=m;i++)
fin>>a[i];
}
void afisare(int k)
{
for(int i=1;i<=k;i++)
fout<<x[i]<<" ";
fout<<endl;
}
int cont(int k){
s=0;
for(int i=1;i<=k;i++)
s+=x[i];
if(s<=n)
return 1;
else
return 0;
}
int ff(int k){
for(int i=1;i<=m;i++)
if(a[i]==x[k])
return i;
return 1;
}
void back(int k){
for(int i=ff(k-1);i<=m;i++){
x[k]=a[i];
if(s==n)
afisare(k-1);
if(cont(k))
back(k+1);
}
}
int main(){
citire();
sort(a+1,a+m+1);
back(1);
return 0; }

You might also like