#include <bits/stdc++.h>
using namespace std;
long long paletta_sort(int N, int V[])
{
long long int conta=0;
for (int i=0;i<(N-2);i=i+2)
{
if (V[i]>V[i+2])
{
swap(V[i],V[i+2]);
conta=conta+1;
i=-2;
}
}
for (int i=1;i<(N-2);i=i+2)
{
if (V[i]>V[i+2])
{
swap(V[i],V[i+2]);
conta=conta+1;
i=-1;
}
}
bool ord=true;
for (int i=0;i<N;i=i+2)
{
if (V[i]>V[i+1])
{
ord=false;
return -1;
}
}
if (ord)
return conta;
}
int main() {
int N;
cin >> N;
int V[N];
for (int i = 0; i < N; ++i)
cin >> V[i];
long long result = paletta_sort(N, V);
cout << result << endl;
return 0;
}
Questo è il mio programma per il problema “ordinamento a paletta”, non riesco a fare più di 20/100 perchè pare non sia ottimizzato, qualcuno saprebbe aiutarmi?