Cod sursa(job #1788624)
| Utilizator | Data | 26 octombrie 2016 10:51:37 | |
|---|---|---|---|
| Problema | A+B | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.74 kb |
#include<iostream>
#include<fstream>
using namespace std;
int x[30],nr=0;
void back(int poz,int fin)
{
int i,s=0;
if(poz==fin+1)
{
for(i=1;i<=fin;i++)
{
s+=(1<<(fin-1))/(1<<x[i]);
}
if(s==(1<<(fin-1)))
{
cout<<++nr<<": ";
for(i=1;i<=fin;i++)
{
cout<<(1<<x[i])<<" ";
}
cout<<"\n";
}
return ;
}
for(i=x[poz-1];i<fin;i++)
{
x[poz]=i;
back(poz+1,fin);
}
}
int main()
{
x[0]=1;
for(int i=2;i<=10;i++)
{
nr=0;
back(1,i);
cout<<"----------------\n";
//cout<<i<<": "<<nr<<"\n";
}
}
