Mai intai trebuie sa te autentifici.
Cod sursa(job #545465)
| Utilizator | Data | 3 martie 2011 13:44:32 | |
|---|---|---|---|
| Problema | Generare de permutari | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.64 kb |
#include <fstream.h>
int X[20];
int n;
ofstream g("permutari.out");
int cont(int k) {
//verific daca elementul de pe nivelul k impreuna cu cele de pe nivelele 1..k-1 poate sa conduca la solutie
//stiind ca aceeasi verificare o facusem cu fiecare dintre elementele anterioare
for (int i=1;i<k;i++)
if (X[i] == X[k])
return 0;
return 1;
}
void back(int k) {
if (k>n) {
for (int i=1;i<=n;i++)
g<<X[i]<<" ";
g<<"\n";
return;
}
for (int i=1;i<=n;i++){
X[k] = i;
if (cont(k))
back(k+1);
}
}
int main() {
ifstream f("permutari.in");
f>>n;
f.close();
back(1);
g.close();
return 0;
}