728x90
반응형
https://www.acmicpc.net/problem/20949
매우 쉬운 문제이다. 문제에 주어진 조건에 따라 계산을 한 후 정렬만 해주면 된다.
단, 계산식 결과가 정수로 떨어지지 않는 경우가 대부분이므로 실수로 처리해주기만 하면 된다.
매우 간단한 문제라 추가적인 설명이 필요 없을 듯 하다. 정렬 조건만 잘 정의하면 된다.
#include <bits/stdc++.h>
#define fastio ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)
#define Mod 1000000007
#define endl '\n'
using namespace std;
int N;
vector<pair<double, int>> ppl;
bool cmp(const pair<double, int> &lhs, const pair<double, int> &rhs){
if(lhs.first == rhs.first){
return lhs.second < rhs.second;
}
return lhs.first > rhs.first;
}
void input(){
cin >> N;
ppl.resize(N);
for(int i=0;i<N;i++){
int width, height;
cin >> width >> height;
ppl[i].first = sqrt((width * width) + (height * height)) / 77;
ppl[i].second = i+1;
}
}
void solution(){
sort(ppl.begin(), ppl.end(), cmp);
for(auto &t : ppl){
cout << t.second << endl;
}
}
int main(){
fastio;
input();
solution();
return 0;
}
728x90
반응형
'BOJ > 정렬' 카테고리의 다른 글
[C/C++] 백준 - 11536번 : 줄 세우기 (0) | 2022.05.14 |
---|---|
[C/C++] 백준 - 10867번 : 중복 빼고 정렬하기 (0) | 2021.08.03 |
[C/C++] 백준 - 2170번 : 선 긋기 (0) | 2021.08.02 |
[C/C++] 백준 - 8979번 : 올림픽 (0) | 2021.08.01 |
[C/C++] 백준 - 2910번 : 빈도 정렬 (0) | 2021.07.31 |