Cod sursa(job #932041)

Utilizator memaxMaxim Smith memax Data 28 martie 2013 17:46:26
Problema Submultimi Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.01 kb
#include<iostream>
#include<fstream>
using namespace std;

bool permutation(int v[], int k);

int main(){
    int n;
    ifstream cinr("permutari.in");
    cinr >> n;
    int p[n];
    for(int i=0; i<n; i++) p[i]=i+1;
    ofstream cour("permutari.out");
    cinr.close(); 
    for(int i=0; i<n; i++) cour << p[i] << " ";
    cour << "\n";
    while(permutation(p,n)){
                            for(int i=0; i<n; i++) cour << p[i] << " ";
                            cour << "\n";
                            }
    cour.close();
    return 0;
    }

bool permutation(int v[], int k){
     int i=k-2;
     if(i<0) return false;
     while(v[i]>v[i+1]){
                        if(i<0) return false;
                        i--;
                        }
     int j=k-1;
     while(v[i]>v[j]) j--;
     int c=v[i];
     v[i]=v[j]; 
     v[j]=c;
     for(int w=i+1, q=k-1; w<q; w++, q--){
             c=v[q];
             v[q]=v[w]; 
             v[w]=c;
             }
     return true;
     }