답안 #340197

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
340197 2020-12-27T09:20:50 Z blue Printed Circuit Board (CEOI12_circuit) C++11
컴파일 오류
0 ms 0 KB
#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';

}

Compilation message

circuit.cpp: In function 'bool distsort(int, int)':
circuit.cpp:17:19: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses]
   17 |     return x[a]^2 + y[a]^2 < x[b]^2 + y[b]^2;
      |                 ~~^~~~~~
circuit.cpp:17:28: warning: suggest parentheses around comparison in operand of '^' [-Wparentheses]
   17 |     return x[a]^2 + y[a]^2 < x[b]^2 + y[b]^2;
      |                          ~~^~~~~~
circuit.cpp:17:37: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses]
   17 |     return x[a]^2 + y[a]^2 < x[b]^2 + y[b]^2;
      |                                   ~~^~~~~~
circuit.cpp: In function 'int main()':
circuit.cpp:27:5: error: 'sort' was not declared in this scope; did you mean 'qsort'?
   27 |     sort(I+1, I+N+1, slopesort);
      |     ^~~~
      |     qsort