█████████ ████ ███░░░░░███ ░░███ ███ ░░░ ██████ ███████ ██████ ██████ ░███ ███░░███ ███░░███ ███░░███ ███░░███ ░███ ░███ ░███░███ ░███ ░███████ ░███ ░███ ░░███ ███░███ ░███░███ ░███ ░███░░░ ░███ ░███ ░░█████████ ░░██████ ░░████████░░██████ ░░██████ ░░░░░░░░░ ░░░░░░ ░░░░░░░░ ░░░░░░ ░░░░░░

Envío 2437

Problema 0xde - Ordenar un arreglo grande

  • Autor: pipelin1010
  • Fecha: 2020-12-18 15:59:45 UTC (Hace más de 3 años)
Caso # Resultado Tiempo Memoria
#1
Correcto
0.005 s 2 KBi
#2
Correcto
0.006 s 1 KBi
#3
Correcto
0.006 s 1 KBi
#4
Correcto
0.005 s 1 KBi
#5
Correcto
0.005 s 2 KBi
#6
Correcto
0.007 s 1 KBi
#7
Tiempo límite excedido
1.065 s 1 KBi
#8
Tiempo límite excedido
1.064 s 2 KBi
#9
Tiempo límite excedido
1.086 s 2 KBi
#10
Tiempo límite excedido
1.017 s 2 KBi
#11
Tiempo límite excedido
1.035 s 2 KBi
#12
Tiempo límite excedido
1.045 s 1 KBi
#13
Tiempo límite excedido
1.006 s 2 KBi
#14
Tiempo límite excedido
1.082 s 2 KBi
#15
Tiempo límite excedido
1.035 s 2 KBi
#16
Correcto
0.087 s 3 KBi
#17
Correcto
0.066 s 2 KBi
#18
Tiempo límite excedido
1.049 s 1 KBi
#19
Tiempo límite excedido
1.07 s 2 KBi
#20
Tiempo límite excedido
1.035 s 1 KBi
#21
Tiempo límite excedido
1.003 s 1 KBi
#22
Tiempo límite excedido
1.033 s 2 KBi
#23
Tiempo límite excedido
1.017 s 2 KBi
#24
Tiempo límite excedido
1.085 s 2 KBi
#25
Tiempo límite excedido
1.013 s 2 KBi
#26
Tiempo límite excedido
1.016 s 2 KBi
#27
Tiempo límite excedido
1.079 s 2 KBi
Puntos totales: 30 / 100

Código

//
#include <bits/stdc++.h>
using namespace std;
#define INF 1000000000
#define MOD 1000000007
#define PI 3.14159265
#define EPS 1e-9
#define Pi acos(-1.0)
typedef pair<int, int> ii;
typedef long long ll;
typedef vector<ll> vll;
typedef pair<ll,ll> pll;
#define forr(i,a,b) for(int i=(a); i<(b); i++)
#define clean(arr,val) memset(arr,val,sizeof(arr))
#define forn(i,n) forr(i,0,n)
#define PB push_back
typedef vector<int> vi;
typedef vector<ii> vii;
typedef vector<pll> vpll;

/*CODE START HERE*/

int n;
vi a;

//Quick sort
void quick(int l, int r){
    // cout << "BEGINNING L " << l << " R " << r << "\n";
    // forn(i,n) cout << a[i] << " ";
    // cout << "\n";
    if(l >= r)
        return;
    int pivot = a[l];
    int posPivot = l;
    int p = l;
    for(int i = l+1; i <= r; i++){
        if(pivot >= a[i]){
            swap(a[p],a[i]);
            if(p == posPivot)
                posPivot = i;
            p++;
            //cout << "IN\n";
        }
        // forn(i,n) cout << a[i] << " ";
        // cout << "\n";
    }
    // forn(i,n) cout << a[i] << " ";
    // cout << "\n";
    swap(a[posPivot],a[p]);
    quick(l,p-1);
    quick(p+1,r);
}

int main(){
    ios::sync_with_stdio(0);
    cin >> n;
    a.assign(n,0);
    forn(i,n) cin >> a[i];
    quick(0,n-1);
    cout << a[0];
    forr(i,1,n){
        cout << " " << a[i];
    }
    cout << "\n";
    return 0;
}