Caso # | Resultado | Tiempo | Memoria |
---|---|---|---|
#1 |
Correcto
|
0.002 s | 0 KBi |
#2 |
Correcto
|
0.007 s | 4 KBi |
#3 |
Correcto
|
0.004 s | 0 KBi |
#4 |
Correcto
|
0.004 s | 0 KBi |
#5 |
Correcto
|
0.007 s | 10 KBi |
#6 |
Correcto
|
0.004 s | 65 KBi |
#7 |
Tiempo límite excedido
|
1.052 s | 1 KBi |
#8 |
Tiempo límite excedido
|
1.099 s | 1 KBi |
#9 |
Tiempo límite excedido
|
1.1 s | 1 KBi |
#10 |
Tiempo límite excedido
|
1.063 s | 1 KBi |
#11 |
Tiempo límite excedido
|
1.036 s | 1 KBi |
#12 |
Tiempo límite excedido
|
1.056 s | 1 KBi |
#13 |
Tiempo límite excedido
|
1.069 s | 3 KBi |
#14 |
Tiempo límite excedido
|
1.08 s | 1 KBi |
#15 |
Tiempo límite excedido
|
1.025 s | 3 KBi |
#16 |
Tiempo límite excedido
|
1.054 s | 1 KBi |
#17 |
Tiempo límite excedido
|
1.046 s | 1 KBi |
#18 |
Tiempo límite excedido
|
1.06 s | 1 KBi |
#19 |
Tiempo límite excedido
|
1.013 s | 16 KBi |
#20 |
Tiempo límite excedido
|
1.053 s | 1 KBi |
#21 |
Tiempo límite excedido
|
1.022 s | 2 KBi |
#22 |
Tiempo límite excedido
|
1.059 s | 1 KBi |
#23 |
Correcto
|
0.315 s | 1 KBi |
#24 |
Correcto
|
0.388 s | 1 KBi |
#25 |
Tiempo límite excedido
|
1.04 s | 1 KBi |
#26 |
Correcto
|
0.312 s | 1 KBi |
#27 |
Tiempo límite excedido
|
1.011 s | 1 KBi |
// // Created by danie on 12/11/2021. // #include "iostream" #include "random" #include "ctime" #define fast_io ios_base::sync_with_stdio(false); cin.tie(NULL); #define rand mt19937 using namespace std; void swap(int &a, int &b){ // a = b + a; // b = a - b; // a = a - b; int temp = b; b = a; a = temp; } int partition(vector<int> &cards, int from, int to){ int x = cards[to]; // cout<<x<<' '; int i = from; for (int j = from; j < to; j++){ if (cards[j] <= x){ swap(cards[i++], cards[j]); // i++; } } swap(cards[i], cards[to]); return i; } void quicksort(vector<int> &cards, int from, int to){ if (to > from){ int part = partition(cards, from, to); quicksort(cards,from, part -1); quicksort(cards, part + 1, to); } } int randomized_partition(vector<int> &cards, int from, int to){ // int k = rand(); mt19937 rand_gen; int i = (rand_gen() % (to - from)) + from; swap(cards[to], cards[i]); return partition(cards,from,to); } int randomized_select(vector<int> &cards, int from, int to, int ith){ // este es el bueno if(to == from) return cards[from]; int ordered_item = randomized_partition(cards, from, to); int distance = ordered_item - from; if (ith == ordered_item) return cards[ordered_item]; if (ith < ordered_item) return randomized_select(cards, from, ordered_item - 1, ith); return randomized_select(cards, ordered_item + 1, to, ith); } //int randomized_select(vector<int> &cards, int from, int to, int ith){ // if(to == from) return cards[from]; // int ordered_item = randomized_partition(cards, from, to); // int elements_on_left_array = (ordered_item - from) ; // if (ith == elements_on_left_array) return cards[ordered_item]; // if (ith < ordered_item) return randomized_select(cards, from, ordered_item - 1, ith); // return randomized_select(cards, ordered_item + 1, to, ith - elements_on_left_array); //} void randomized_quicksort(vector<int> &cards,int from,int to){ if (to > from){ int part = randomized_partition(cards, from, to); randomized_quicksort(cards,from, part - 1); randomized_quicksort(cards, part + 1, to); } } //void tests(){ // vector<int> cards = {25,45,38,19,9,4,14}; // 0 1 3 5 5 7 7 8 sorted // // quicksort(cards,0,cards.size() - 1); //// for(int card:cards)cout<<card<<' '; // //// cout<<'\n'<<randomized_select(copy_cards,0,cards.size() - 1, 7)<<'\n'; //// for(int card:copy_cards)cout<<card<<' '; // // //} int main(){ fast_io int n; cin>>n; vector<int> numbers; for(int i = 0; i < n; i++) { int in; cin>>in; numbers.push_back(in); } randomized_quicksort(numbers,0,n - 1); for (int num: numbers) cout<<num<<' '; }