ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1207. Медиана на плоскости

Why WA on test case 7? please help
Послано farid 21 авг 2019 16:49
#include <bits/stdc++.h>
using namespace std;

int const N = 123456;
#define pi acos(-1.0)
typedef long long ll;

int ar[N],xar[N],uses[N];

struct points {
     double x, y;
     int id;
     points() {}
     points(double x, double y) : x(x), y(y) {}
 } ;

double ang(const points &p){
    double res = atan2(p.y, p.x);
    if(res < 0) res += 2.0 * pi;
    return res;
}

struct cmp{
    inline bool operator () (const points &p1, const points &p2){
        double ang1 = ang(p1)*(180/pi), ang2 = ang(p2)*(180/pi);
        if(fabs(ang1 - ang2) < 1e-9){
            ll d1 = (ll)p1.x * (ll)p1.x + (ll)p1.y * (ll)p1.y;
            ll d2 = (ll)p2.x * (ll)p2.x + (ll)p2.y * (ll)p2.y;

            return d1 < d2;
        }
        return ang1 < ang2;
    }
};

points pt[N];

int main() {
    int n;
    cin >> n;
    for(int i = 0; i < n; i++){
        cin >> pt[i].x >> pt[i].y;
        pt[i].id = i+1;
    }
    sort(pt, pt+n, cmp());
    cout<<pt[0].id<<" "<<pt[(n/2)].id<<endl;

    return 0;
}
Re: Why WA on test case 7? please help
Послано silverfox 17 май 2022 23:27
I know this is an old post. but for others' reference, we should use long long to avoid integer overflow.