Mam problem, ponieważ rozwiązanie, które napisałem wygląda na poprawne (nie znalazłem danych przy których odpowiedz byłaby błędna), ale niestety tester nie chce go zaakceptować. Może ktoś spojrzeć na to i wskazać mi w czym tkwi problem?
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
struct PKT
{
string nazwa; //nazwa pkt
long long x; //wsp. x
long long y; //wsp. y
long long o; //odleglosc od srodka ukladu
};
int t; //zmianna zawierająca ilość testów
cin >> t;
for(int x=0; x<t; x++) {
int a; //zmienna zawierająca ilość punktów
cin >> a;
PKT p[a]; // tablica pkt
for (int y=0; y<a; y++) {
cin >> p[y].nazwa >> p[y].x >> p[y].y;
p[y].o = (p[y].x*p[y].x) + (p[y].y*p[y].y);
}
if (a>1) {
int zmiany;
do {
zmiany = 0;
for (int y=0; y<a-1; y++) {
if (p[y].o > p[y+1].o) {
string stemp;
int temp, temp1, temp2;
stemp = p[y].nazwa;
temp = p[y].o;
temp1 = p[y].x;
temp2 = p[y].y;
p[y].nazwa = p[y+1].nazwa;
p[y].o = p[y+1].o;
p[y].x = p[y+1].x;
p[y].y = p[y+1].y;
p[y+1].nazwa = stemp;
p[y+1].o = temp;
p[y+1].x = temp1;
p[y+1].y = temp2;
zmiany++;
}
}
} while (zmiany>1);
}
for (int y=0; y<a; y++) {
cout << p[y].nazwa << ' ' << p[y].x << ' ' << p[y].y << endl;
}
cout << endl;
}
return 0;
}
Z góry dzięki za pomoc.