| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 | 
|---|---|---|---|---|---|---|---|
| 340197 | blue | Printed Circuit Board (CEOI12_circuit) | C++11 | 0 ms | 0 KiB | 
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <iostream>
using namespace std;
int N;
int x[200001];
int y[200001];
bool slopesort(int a, int b)
{
    //return y[a]/x[a] < y[b]/x[b];
    if(y[a] * x[b] == y[b] * x[a]) return x[a] < x[b];
    return y[a] * x[b] < y[b] * x[a];
}
bool distsort(int a, int b)
{
    return x[a]^2 + y[a]^2 < x[b]^2 + y[b]^2;
}
int main()
{
    cin >> N;
    for(int i = 1; i <= N; i++) cin >> x[i] >> y[i];
    int I[N+1];
    for(int i = 1; i <= N; i++) I[i] = i;
    sort(I+1, I+N+1, slopesort);
    int slope_pos[N+1];
    for(int i = 1; i <= N; i++) slope_pos[I[i]] = i;
    for(int i = 1; i <= N; i++) cout << slope_pos[i] << ' ';
    cout <<'\n';
}
