# PBinfo #511 – KSort – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: deivid

## Enunț

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.

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 ≤ 1000
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

## Cod sursă C++

```cpp
#include <iostream>
using namespace std;
int main(){
	int n , k, x[1005];
	cin  >> n >> k;	
	for(int i = 0 ; i < n ; ++ i)
		cin >> x[i];
	bool sortat = false;
	while(! sortat)
	{
		sortat = true;
		for(int i = 0 ; i < k - 1 ; i++)
			if(x[i] > x[i+1])
			{
				int aux = x[i];
				x[i] = x[i+1];
				x[i+1] = aux;
				sortat = false;
			}
	}
	sortat = false;
	while(! sortat)
	{
		sortat = true;
		for(int i = k ; i < n - 1 ; i++)
			if(x[i] < x[i+1])
			{
				int aux = x[i];
				x[i] = x[i+1];
				x[i+1] = aux;
				sortat = false;
			}
	}
	for(int i = 0 ; i < n ; ++ i)
		cout << x[i] << " ";
	return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/511)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/511/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-511/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
