Cod sursa(job #2419203)

Utilizator MortemPlaiasu Iulia-Silvia Mortem Data 7 mai 2019 19:36:46
Problema Generare de permutari Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.88 kb
#include <iostream>
#include <algorithm>
FILE * fin= fopen("permutari.in","r");
FILE * fout=fopen("permutari.out","w");

int n;
int v[10];

struct Comp: std::binary_function<int,int,bool>
{
  bool operator() (int i1, int i2)
  {
    return i1<i2;
  }
};

void write()
{
  for(int i=1;i<=n;i++)
    fprintf(fout,"%d ",v[i]);
  fprintf(fout,"\n");
//  for(int i=1;i<=n;i++)
  //  printf("%d ",v[i]);
 // printf("\n");
}

int main()
{
  fscanf(fin,"%d",&n);
  bool ok =true;
  for(int i=1;i<=n;i++)
    v[i]=i;
  write();
  while(ok)
  {
    int i=n-1;
    ok=false;
    for(;i>=1;i--)
    {
      if(v[i+1]>v[i])
      {
        int minn=i+1;
        for(int j= i+1;j<=n;j++)
          if(v[j]< v[minn] && v[j]>v[i])
            minn=j;
        std::swap(v[minn],v[i]);
        ok=true;
        break;
      }
    }
    if(ok)
    {
      std::sort(v+i+1,v+n+1,Comp());
      write();
    }
  }
}