Cod sursa(job #1736854)

Utilizator danutbodbodnariuc danut danutbod Data 2 august 2016 19:36:46
Problema Submultimi Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.55 kb
////var I  sol. ordonate lexicografic
////idee  (cu backtraking)               1
////combinari de lungime variabila       1 2
////toate sirurile cu elem. crescatoare  1 2 3
//#include <fstream>                  // 2
//using namespace std;               //  2 3
//ifstream fi("submultimi.in");
//ofstream fo("submultimi.out");
//int a[100],k,i,n;
//void afis(int i){
//int j;
//for(j=1;j<=i;j++)fo<<a[j]
//    <<" ";
//fo<<'\n';
//}
//int valid(int i){
//int j;
//if(i>1)
//    if(a[i-1]>=a[i])return 0;
//return 1;
//}
//void backtr(int i){
//int val;
//for(val=1;val<=n;val++){
//    a[i]=val;
//    if(valid(i))
//        {afis(i);
//         backtr(i+1);
//        }
//  }
//}
//int main(){
//    fi>>n;
//    backtr(1);
//return 0;
//}
////var II
//#include<fstream>
//using namespace std;
//ifstream fi("submultimi.in");
//ofstream fo("submultimi.out");
//int n,sol[20],i,k;
//int main()
//{
//
//fi>>n;
//while(sol[n+1]==0)
//    {
//        sol[1]++;k=1;
//        while(sol[k]>1)
//            {
//                sol[k]=0; sol[k+1]++; k++;
//            }
//        for(i=1;i<=n;i++)
//            if(sol[i]==1) fo<<i<<" ";
//        fo<<'\n';
//    }
//return 0;
//}
//var III cu op. pe biti
#include <fstream>
using namespace std;
ifstream f("submultimi.in");
ofstream g("submultimi.out");
int main()
{
    int i,j,lim,n;
    f>>n;
    lim=1<<n;
    for(i=1;i<lim;i++)
    {
        for(j=1;j<=n;j++)
            if(i&(1<<(j-1)))
                g<<j<<" ";
        g<<'\n';
    }
    return 0;
}