Hej, napisalem taki oto kod w c++, jednak mimo tego ze sprawdzalem go wiele razy sedzia na spoju nie chce zatwierdzic kodu i otrzymuje bledna odpowiedz. Wiecie co w nim poprawic aby zatwierdzil? Zapewne blad jest w funkcji void odczyt lub samym mainie. Zadanie - https://pl.spoj.com/problems/MWPZ06H/
#include <iostream>
using namespace std;
void odczyt(int *tab,int goscie)
{
int q=0;
cout << tab[goscie - 1] << ' ';
for (int i = goscie - 2; i >= 0; i--)
{
if (tab[i - 1] == tab[i])
{
cout << tab[i] << ' ';
continue;
}
else if (tab[i - 1] != tab[i] && tab[i] == tab[i + 1])
{
cout << tab[i] << ' ';
q = i - 1;
break;
}
else if (tab[i - 1] != tab[i] && tab[i] != tab[i + 1])
{
q = i;
break;
}
else if (tab[i - 1] == tab[i] && tab[i] == tab[i + 1])
{
cout << tab[i] << ' ';
continue;
}
}
for (int i = 0; i <= q; i++)
{
if (i == q)
cout << tab[i];
else
cout << tab[i] << ' ';
}
cout << '\n';
}
void quick_sort(int* tab, int left, int right)
{
if (right <= left) return;
int pivot;
int i = left - 1, j = right + 1;
pivot = tab[(left + right) / 2];
while (1)
{
while (pivot > tab[++i]);
while (pivot < tab[--j]);
if (i <= j)
swap(tab[i], tab[j]);
else
break;
}
if (j > left)
quick_sort(tab, left, j);
if (i < right)
quick_sort(tab, i, right);
}
int main()
{
int t, goscie;
int* tab; //quick sort
cin >> t;
while (t--)
{
cin >> goscie;
tab = new int[goscie];
for (int i = 0; i < goscie; i++)
{
cin >> tab[i];
}
if (goscie == 1)
cout << tab[0] << '\n';
else
{
quick_sort(tab, 0, goscie - 1);
odczyt(tab, goscie);
}
}
return 0;
}