Cod sursa(job #2634041)
Utilizator | Oprea Marina marinaopr | Data | 9 iulie 2020 17:14:06 |
---|---|---|---|
Problema | Generare de permutari | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.76 kb |
#include <fstream>
using namespace std;
ifstream fin("permutari.in");
ofstream fout("permutari.out");
int p[10],i,j,n,st,dr,gasit,nr;
int main()
{
fin>>n;
for(i=1;i<=n;i++)
p[i]=i;
do
{ nr++;
for(i=1;i<=n;i++)
fout<<p[i]<<" ";
fout<<'\n';
gasit=0;
i=n-1;
while(gasit==0 and i>=1)
if(p[i]>p[i+1]) i--;
else gasit=1;
if(gasit){
j=n;
while(p[j]<p[i]) j--;
swap(p[j],p[i]);
st=i+1;
dr=n;
while(st<dr){
swap(p[st],p[dr]);
st++;
dr--;
}
}
}while (gasit==1 and nr<150000);
return 0;
}