Pagini recente » Utilizatori inregistrati la Summer Challenge 2009, Runda 2 | Cod sursa (job #964256) | Cod sursa (job #1167410) | Cod sursa (job #2598202) | Cod sursa (job #2566629)
#include <iostream>
#include <fstream>
using namespace std;
int st[10], n, k;
ifstream fin("permutari.in");
ofstream fout("permutari.out");
void init() {
st[k] = 0;
}
int succesor() {
if(st[k] < n) {
st[k]++;
return 1;
}
return 0;
}
int valid() {
for(int i = 1; i < k; i++)
if(st[k] == st[i])
return 0;
return 1;
}
int solutie() {
if(k==n)
return 1;
return 0;
}
void afisare() {
for(int i = 1; i <= n; i++)
fout << st[i] << " ";
fout << '\n';
}
void back() {
int as, ev;
k = 1;
init();
while(k > 0) {
do {
as = succesor();
if(as)
ev = valid();
} while(as && !ev);
if(as)
if(solutie())
afisare();
else {
k++;
init();
}
else k--;
}
}
int main() {
fin >> n;
fin.close();
back;
return 0;
}