Witam,
Link do zdania. http://www.spoj.com/WSDOCPP/problems/SORTWNIA/
Program
#include<stdio.h>
#include<stdlib.h>
void Sortuj_szybko(int d[],int lewy, int prawy)
{
int i,j,piwot,temp;
i = (lewy + prawy) / 2;
piwot = d[i]; d[i] = d[prawy];
for(j = i = lewy; i < prawy; i++)
if(d[i] < piwot)
{
temp=d[i];
d[i]=d[j];
d[j]=temp;
j++;
}
d[prawy] = d[j]; d[j] = piwot;
if(lewy < j - 1) Sortuj_szybko(d,lewy, j - 1);
if(j + 1 < prawy) Sortuj_szybko(d,j + 1, prawy);
}
int main()
{
static int tab[100000];
int cnt=0,i,val;
for (i=0;i<100000; i++)
{
scanf("%d",&val);
tab[cnt++]=val;
if (val=getchar()=='\n')break;
}
Sortuj_szybko(tab,0,cnt-1);
for (i=cnt-1; i>=0; i--)
printf("%d ",tab[i]);
return 0;
}
Sprawdziłem program poprzez wylosowanie 105 liczb z zakresu od 0 do 109 i zapisałem wynik do pliku, wszystko wydaję się ok, mimo to SPOJ zwraca błędną odpowiedź.