Mam problem z zadaniem z serwisu SPOJ strzelec wyborowy. Link do zadania: http://pl.spoj.com/problems/FR_07_13/ Postanowiłem wykorzystać twierdzenie Talesa, może wy macie inny pomysł. Obliczyłem odległość między strzelcem i punktami skrajnymi celu i przeszkody i sprawdziłem czy przeszkoda nie przecina obu boków trójkąta utworzonego przez strzelca i cel jeśli nie to wyświetl TAK, wydaje mi się że coś źle zrobiłem przy sprawdzaniu czy strzelec trafi cel. Oto fragment kodu:
//sprawdzenie czy na drodze strzelca do celu nie stoi przeszkoda if ((Yc1-Yc2)/(Yp1-Yp2)>=odlegloscOdCeluGora2/odlegloscOdPrzeszkodyGora2 || (Yc1-Yc2)/(Yp1-Yp2)>=odlegloscOdCeluDol2/odlegloscOdPrzeszkodyDol2) cout << "TAK"<< endl; else cout << "NIE"<< endl;
odlegloscOdCeluGora2 - odległość między górnym punktem celu a strzelcem
odlegloscOdCeluDol2 - odległość między dolnym punktem celu a strzelcem
odlegloscOdPrzeszkodyGora2 - odległość między górnym punktem przeszkody a strzelcem
odlegloscOdPrzeszkodyDol2 - odległość między dolnym punktem przeszkody a strzelcem
Yc1 - górny punkt celu
Yc2 - dolny punkt celu
Yp1 - górny punkt przeszkody
Yp2 - dolny punkt przeszkody