Cześć, mam problem pisałem przed chwilą zadanie ze spoja https://pl.spoj.com/problems/MWPZ06H/ i wszystko dobrze działa do półki w konsoli nie napiszę tak:
2
5
1 2 3 4 5
4 5 2 3 5
Wynik powinien wyglądać tak:
5 1 2 3 4
5 5 2 3 4
A mój wygląda tak:
5 1 2 3 4
5 5 0 2 3
Tak wygląda mój kod:
#include <iostream>
using namespace std;
int ile;
int maximum=0;
void quicksort(int *tablica, int lewy, int prawy)
{
int v=tablica[(lewy+prawy)/2];
int i,j,x;
i=lewy;
j=prawy;
do
{
while (tablica[i]<v)
i++;
while (tablica[j]>v)
j--;
if (i<=j)
{
x=tablica[i];
tablica[i]=tablica[j];
tablica[j]=x;
i++;
j--;
}
}
while (i<=j);
if (j>lewy)
quicksort(tablica,lewy, j);
if (i<prawy)
quicksort(tablica, i, prawy);
}
int main()
{
cin>>ile;
for (int i=0; i<ile; i++)
{
int ile2;
cin>>ile2;
int *pkt=new int [ile2];
for(int j=0; j<ile2; j++)
{
cin>>pkt[j];
if(pkt[j]>maximum)
maximum=pkt[j];
}
int ilosc=0;
for(int j=0; j<ile2; j++)
{
if(pkt[j]==maximum) ilosc++;
}
for(int i=0; i<ilosc; i++)cout<<maximum<<" ";
quicksort(pkt,0,ile2);
ile2=ile2-ilosc;
for(int j=0; j<ile2; j++)
{
cout<<pkt[j]<<" ";
}
cout<<endl;
}
return 0;
}