Дартс
Онцгой цэг болох -ээс хамгийн ойр зайтай цэгийн тоог олж цор ганц байвал түүний дугаарыг, -ээс олон олдвол гэж хэвлэх байсан. Тэгэхээр онцгой цэгээс бусад цэг хүртэлх зайг томъёогоор олно.
Код
#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;
}