Cod sursa(job #2139181)
Utilizator | Data | 22 februarie 2018 10:54:52 | |
---|---|---|---|
Problema | Arbori de intervale | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.5 kb |
#include <iostream>
using namespace std;
int n,m,st[101],viz[101],a[101];
void bt( int k, int s)
{
if(s==m)
{
for(int i=1;i<k;i++)
cout<<a[st[i]]<<" ";
cout<<'\n';
}
else
for(int i=st[k];i<=n;i++)
if(s+a[i]<=m)
{
st[k]=i;
if(st[k-1] <= st[k])
bt(k+1,s+a[i]);
}
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
cin>>a[i];
st[0]=1;
bt (1,0);
return 0;
}