No Rules Rules

국영수 (feat. 백준, 10825번) 본문

생활/코테

국영수 (feat. 백준, 10825번)

개발하는 완두콩 2023. 3. 15. 12:18
728x90
반응형

국영수
https://www.acmicpc.net/problem/10825

 

10825번: 국영수

첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 1

www.acmicpc.net

 

// woohyeon.kim
// kim519620.tistory.com
#include <iostream>
#include <string>
#include <vector>
#include <tuple>
#include <algorithm>
using namespace std;
inline bool compare(const tuple<string, int, int, int>& v1, const tuple<string, int, int, int>& v2){
    if(get<1>(v1) == get<1>(v2)){
        if(get<2>(v1) == get<2>(v2)){
            if(get<3>(v1) == get<3>(v2))
                return get<0>(v1) < get<0>(v2);
            return get<3>(v1) > get<3>(v2);
        }
        return get<2>(v1) < get<2>(v2);
    }
    return get<1>(v1) > get<1>(v2);
}
int main() {
	ios::sync_with_stdio(false), cin.tie(NULL);
    register int N;
    string str;
	vector<tuple<string, int, int, int>> arr;
    cin >> N;
    for(register int n = 0, a, b, c; n < N; ++n)
        cin >> str >> a >> b >> c, arr.emplace_back(make_tuple(str, a, b, c));
    sort(arr.begin(), arr.end(), compare);
    for(auto& v : arr)
        cout << get<0>(v) << '\n';
	return 0;
}
// *&)*@*

 

반응형

문제의 조건대로 정렬할 수 있는 함수 (compare) 를 정의하여 sort를 수행하였습니다.

728x90
반응형
Comments