Дартс

Онцгой цэг болох -ээс хамгийн ойр зайтай цэгийн тоог олж цор ганц байвал түүний дугаарыг, -ээс олон олдвол гэж хэвлэх байсан. Тэгэхээр онцгой цэгээс бусад цэг хүртэлх зайг томъёогоор олно.

Код

#include <cstdio> #include <algorithm> using namespace std; pair <double, int> ans[100005]; double dist(double xx, double yy, double x, double y) { return (xx - x) * (xx - x) + (yy - y) * (yy - y); } int main() { int n, m, k; double x, y, xx, yy; scanf("%d%d%lf%lf", &n, &m, &x, &y); scanf("%d", &k); for(int i = 0; i < k; i++) { scanf("%lf%lf", &xx, &yy); ans[i].first = dist(xx, yy, x, y); ans[i].second = i; } sort(ans, ans + k); if(k == 1 || ans[0].first != ans[1].first) printf("%d\n", ans[0].second); else puts("They were tied"); return 0; }