Cod sursa(job #807346)

Utilizator jolgauSecret Fidel jolgau Data 4 noiembrie 2012 17:00:02
Problema Submultimi Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include<fstream>
#include<cmath>
using namespace std;

/*Idea de rezolvare :
Vom efectua (2^n)-1 adunari binare
ADUNARI BINARE :
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 0 (1 se transfera cu o pozitie mai incolo)
*/

ifstream f("submultimi.in");
ofstream g("submultimi.out");

int main()
{
int n,x[5000],i,j,k;
long a;

f>>n;
for(i=1; i<=n; i++)
     x[i] = 0;

a = pow(2,n)-1;
for(i=1; i<=a; i++)
    {
     k = 1;
     x[1]++;
     while(x[k] == 2)
           {
            x[k] = 0;
            x[k+1]++;
            k++;
           }

     for(j=1; j<=n; j++) if(x[j]) g<<j<<" ";
     g<<"\n";
    }

f.close();
g.close();
return 0;
}