Pagini recente » Borderou de evaluare (job #2251498) | Borderou de evaluare (job #2680213) | Borderou de evaluare (job #2675416) | Borderou de evaluare (job #3116817) | Cod sursa (job #2000714)
#include <iostream>
#include <fstream>
#include <unordered_map>
#include <cmath>
#define ll long long
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
const int NMax = 1e6 + 5;
const int inf = 1e9 + 5;
int N;
int v[NMax];
void flip(int,int);
int main() {
in>>N;
for (int i=1;i <= N;++i) {
in>>v[i];
}
int dr = N;
while (dr > 1) {
int mx = -inf, poz = -1;
for (int i=1;i <= dr;++i) {
if (v[i] > mx) {
mx = v[i];
poz = i;
}
}
flip(1,poz-1);
flip(1,poz);
flip(1,dr);
flip(1,dr-1);
--dr;
}
for (int i=1;i <= N;++i) {
out<<v[i]<<' ';
}
in.close();out.close();
return 0;
}
void flip(int st,int dr) {
int i = st, j = dr;
while (i < j) {
int temp = v[i];
v[i] = v[j];
v[j] = temp;
++i; --j;
}
}