fbpx

Problema #1157 – KSort2 – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Se dă un vector cu n elemente, numere naturale și un număr k. Ordonați crescător primele k elemente ale vectorului și descrescător ultimele n-k elemente.

Pentru sortare se va folosit metoda QuickSort sau MergeSort.

Date de intrare

Programul citește de la tastatură numerele n și k, iar apoi n numere naturale, reprezentând elementele vectorului.

Date de ieșire

Programul va afișa pe ecran elementele vectorului, separate prin exact un spațiu, după efectuarea operațiilor cerute.

Restricții și precizări

  • 1 ≤ k < n ≤ 200 000
  • cele n numere citite vor fi mai mici decât 1 000 000 000

Exemplu

Intrare

7 3
13 1 10 15 3 7 11

Ieșire

1 10 13 15 11 7 3
#include <bits/stdc++.h>

using namespace std;

int main()
{
    int n;
    cin >> n;
    int k;
    cin >> k;
    int a[200000];
    for(int i = 0 ; i < n ; ++i)
    {
        cin >> a[i];
    }
    sort(a, a+k);
    for(int i = 0 ; i < k ; ++i)
    cout << a[i] << ' ';
    sort(a+k , a+n);
    for(int i = n-1 ; i >= k ; --i)
    cout << a[i] << ' ';
    return 0;    
}
Comentarii

S-ar putea sa iti placa