witam nie wiem dlaczego mój program nie rozwiązuje dobrze zadania (rezultatem programu zawsze jest 1 albo 0 co jest niepoprawne) ze strony:
http://main.edu.pl/pl/archive/pa/2012/kre
#include <iostream>
using namespace std;
long int tab[500000][3];
long int n, wynik, pom1, pom2, pom3;
int main()
{
wynik = 0;
cin >> n;
for (long int i = 0; i < n; i++)
{
cin >> tab[i][0] >> tab[i][1] >> tab[i][2]; // wpisanie x,y i r do tab
}
for (long int i = 0; i < n; i++)
{
for (long int j = i+1; j < n; j++)
{
pom1 = (tab[i][0] - tab[j][0])^2; //obliczam z pitagorasa
pom2 = (tab[i][1] - tab[j][1])^2; //a^2+ b^2 = c^2
pom3 = (tab[i][2] + tab[j][2])^2; //
if(pom3 == (pom1 + pom2))
{
wynik++;
}
}
}
cout << wynik;
return 0;
}