BOJ/정렬

[C/C++] 백준 - 효정과 새 모니터

JWonK 2022. 8. 12. 23:22
728x90
반응형

https://www.acmicpc.net/problem/20949

 

20949번: 효정과 새 모니터

효정은 새해를 맞이하여 새 모니터를 구매하고자 한다. 효정은 돈이 많기 때문에 77인치 모니터를 구매할 것이다. 모니터를 구경하던 효정은 놀라 자빠질 수밖에 없었다. 모니터가 너무 많아 고

www.acmicpc.net


매우 쉬운 문제이다. 문제에 주어진 조건에 따라 계산을 한 후 정렬만 해주면 된다.

단, 계산식 결과가 정수로 떨어지지 않는 경우가 대부분이므로 실수로 처리해주기만 하면 된다.

 

매우 간단한 문제라 추가적인 설명이 필요 없을 듯 하다. 정렬 조건만 잘 정의하면 된다.

#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
반응형