# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
340197 | blue | Printed Circuit Board (CEOI12_circuit) | C++11 | 0 ms | 0 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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';
}