Pagini recente » Borderou de evaluare (job #359871) | Borderou de evaluare (job #1792018) | Borderou de evaluare (job #193709) | Borderou de evaluare (job #1887897) | Cod sursa (job #1011022)
//
// main.cpp
// permutari
//
// Created by Catalina Brinza on 10/16/13.
// Copyright (c) 2013 Catalina Brinza. All rights reserved.
//
#include <cstdlib>
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
ofstream g("permutari.out");
bool valid(vector <int> v)
{
bool val=true;
for(int i=0; i<v.size(); i++)
for(int k=i+1; k<v.size(); k++)
if (v[i]==v[k]) val=false;
return val;
}
void write (vector <int> v)
{
for(int k=0; k<v.size(); k++)
g<<v[k]<<" ";
g<<endl;
}
void generate_permutations(int n)
{
vector <int> vec;
for(int i=1; i<=n; i++)
{
vec.push_back(i);
int k=1;
while(k>1)
{
vec.push_back(k);
if(!valid(vec))
{
vec.pop_back(); k++;}
else
{
if(vec.size()==n)
{
write(vec);
vec.pop_back();
k--;
}
else
{
if(vec[k]<n)
{
vec[k]++;
k++;
}
else
{
vec.pop_back();
k--;
}
}
}
}
vec.clear();
}
}
int main()
{
int n;
ifstream f("permutari.in");
f>>n;
generate_permutations(n);
return 0;
g.close();
f.close();
}