Cod sursa(job #897318)
Utilizator | Isaila Ioan Andrei Iandrei96 | Data | 27 februarie 2013 19:57:24 |
---|---|---|---|
Problema | Generare de permutari | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.58 kb |
#include <fstream>
using namespace std;
ifstream f("permutari.in");
ofstream g("permutari.out");
int k,n,i,v[100];
bool ok;
void tipar(int k) {
for (i=1;i<=n;i++) { g<<v[i]<<" ";};
g<<"\n";
}
bool valid(int k) {
for (i=1;i<k;i++) {if (v[i]==v[k]) return 0;};
return 1;
}
int main () {
f>>n;k=1;v[k]=0;
while (k!=0) { ok=false;
while ((v[k]<n) && (ok==false)){v[k]=v[k]+1; if (valid(k)) ok=true;};
if (ok==false) k--;
else if (k==n) tipar(k);
else {k++;v[k]=0;}
}
}