Pagini recente » Monitorul de evaluare | Cod sursa (job #3360694) | Cod sursa (job #3360681)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("permutari.in");
ofstream fout("permutari.out");
int main() {
int n;
fin >> n;
vector<int> v(n + 1);
for (int i = 1; i <= n; i++){
v[i] = i;
}
while (true){
for (int i = 1; i <= n; i++){
fout << v[i] << ' ';
}
fout << '\n';
int p = n - 1;
while (p >= 1 && v[p] > v[p+1]){
p--;
}
if (p == 0){
break;
}
int q = n;
while (v[q] < v[p]){
q--;
}
int aux = v[p];
v[p] = v[q];
v[q] = aux;
int st = p + 1;
int dr = n;
while (st < dr){
aux = v[st];
v[st] = v[dr];
v[dr] = aux;
st++;
dr--;
}
}
return 0;
}