Cod sursa(job #2430814)

Utilizator rd211Dinucu David rd211 Data 16 iunie 2019 16:41:31
Problema Submultimi Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("submultimi.in");
ofstream fout("submultimi.out");
int n;
int arr[17];
bool isValid(int pos)
{
    if(pos==0)
        return true;
    if(arr[pos]<arr[pos-1])
        return false;
    return true;
}
bool isSol(int pos)
{
    for(int i = 0;i<pos;i++)
        if(arr[i]==arr[pos])
            return false;
    return true;
}
bool isOk(int pos)
{
    if(isValid(pos)&&isSol(pos))
        return true;
    return false;
}
void tipar(int pos)
{
    for(int i = 0;i<=pos;i++)
        fout<<arr[i]<<" ";
    fout<<'\n';
}
void solve(int pos)
{
    for(int i = 1;i<=n;i++)
    {
        arr[pos]=i;
        if(isOk(pos))
        {
                tipar(pos);
                solve(pos+1);
        }
    }
}
int main()
{
    fin>>n;
    solve(0);
    return 0;
}