알고리즘

[알고리즘] 백준 2456 - 나는 학급회장이다 (C++)

blueberrysoda 2025. 2. 16. 22:02

[문제 링크] : https://www.acmicpc.net/problem/2456

#include <iostream>
using namespace std;

int N;
int Arr[4][4];

int main(){
    int a, b, c;
    cin >> N;

    for(int i=1; i<=N; i++){
        cin >> a >> b >> c;
        Arr[1][a]++;
        Arr[2][b]++;
        Arr[3][c]++;
    }

    int Max = 0, tmp = -1;
    a = 0, b = 0, c = 0;
    for(int i=1; i<=3; i++){
        if(Max < Arr[i][1] + Arr[i][2] * 2 + Arr[i][3] * 3){
            tmp = i;
            Max = Arr[i][1] + Arr[i][2] * 2 + Arr[i][3] * 3;
            a = Arr[i][1];
            b = Arr[i][2];
            c = Arr[i][3];
        }
        else if(Max == Arr[i][1] + Arr[i][2] * 2 + Arr[i][3] * 3){
            if(Arr[i][3] > c || (Arr[i][3] == c && Arr[i][2] > b)){
                tmp = i;
                Max = Arr[i][1] + Arr[i][2] * 2 + Arr[i][3] * 3;
                a = Arr[i][1];
                b = Arr[i][2];
                c = Arr[i][3];
            }
            else if(Arr[i][3] == c && Arr[i][2] == b){
                tmp = 0;
            }
        }
    }

    cout << tmp << " " << Max << "\n";

    return 0;
}