Link do Zadania http://pl.spoj.com/problems/PP0506A/
Zadanie przechodzi wszystkie możliwe ekstremalne testy a sędzia nie akceptuje i cały czas dostaję "Błędna odpowiedź" Tracę już nerwy i cierpliwość. Może ktoś rzucić okiem o co chodzi sędziemu?
#include <iostream>
using namespace std;
class tabela
{
public:
string napis;
int x,y,odleglosc;
};
void wczytaj(tabela *tab, int liczby);
void quicksort(tabela *tab, int lewy, int prawy);
int t; //liczba testów
int ile; //liczba współrzędnych
int main()
{
ios_base::sync_with_stdio(0);
cin>>t;
while (t--) {
ios_base::sync_with_stdio(0);
cin >> ile;
tabela * tab;
tab = new tabela [ile+1];
wczytaj(tab,ile);
quicksort(tab,0,ile-1);
for (int i=0; i<ile; i++) {
cout << tab[i].napis << " " << tab[i].x << " "<< tab[i].y;
if (i!=ile-1) {
cout << endl;
}
}
cout << endl << endl;
delete [] tab;
}
return 0;
}
void wczytaj(tabela *tab, int liczby) {
int a,b;
string nazwa;
for (int i=0; i<liczby; i++) {
cin >> nazwa >> a >> b;
tab[i].napis = nazwa;
tab[i].x = a;
tab[i].y = b;
tab[i].odleglosc = (a*a+b*b);
}
}
void quicksort(tabela *tab, int lewy, int prawy) {
int v=(lewy+prawy)/2;
int i,j;
i=lewy;
j=prawy;
do
{
while(tab[i].odleglosc<tab[v].odleglosc) i++;
while(tab[j].odleglosc>tab[v].odleglosc) j--;
if(i<=j)
{
tab[ile]=tab[i];
tab[i]=tab[j];
tab[j]=tab[ile];
i++;
j--;
}
}
while(i<=j);
if(j>lewy) quicksort(tab,lewy, j);
if(i<prawy) quicksort(tab, i, prawy);
}