Pagini recente » Istoria paginii runda/ojui2018ad/clasament | Cod sursa (job #2973266) | Cod sursa (job #2614624) | Cod sursa (job #2775254) | Cod sursa (job #1936330)
#include <iostream>
using namespace std;
int n,s[100],nr;
void init (int k)
{ s[k]=0;
}
void suc (int k ,int &as)
{ if(s[k]<n)
{ s[k]++;
as=1;
}
else as=0;
}
void valid (int k,int &ev)
{ ev=1;
for(int i=1;i<k;i++)
if(s[k]==s[i]) ev=0;
}
int solutie (int k)
{ if(k==n) return 1;
else return 0;
}
void tipar(int k)
{ nr++;
cout<<"solutie cu numarul \"<<nr<<endl;
for(int i;i<k;i++)
cout<<s[i]<<" ";
cout<<endl;
}
void back()
{ int k=1,as,ev;
init(k);
while(k>0)
{ do
{suc(k,as);
if(as==1) valid(k,ev);
}
while(as==1 && !ev);
if(as==1) if(solutie(k)) tipar(k);
else
{
k++;
init(k);
}
else k--;
}
}
int main()
{ cin>>n;
back();
if(nr==0) cout<<"nu avem sol";
else cout<<nr;
}