https://www.acmicpc.net/problem/8979
구분은 정렬로 되어있는 문제지만 정렬알고리즘을 사용하지 않고 구현했다.
아래 조건에 맞춰 조건문을 사용하여 구현
금메달 수가 더 많은 나라
금메달 수가 같으면, 은메달 수가 더 많은 나라
금, 은메달 수가 모두 같으면, 동메달 수가 더 많은 나라
#include <iostream>
using namespace std;
int main()
{
int num, pick;
cin >> num >> pick;
int **country = new int*[num];
for(int i = 0; i < num; i++)
{
country[i] = new int[4];
country[i][0] = -1;
}
int cnt = num;
int name;
while(cnt != 0)
{
cin >> name;
if(name <= num && country[name - 1][0] == -1) {
cnt--;
country[name - 1][0] = name;
for (int i = 1; i < 4; i++)
scanf("%d", &country[name - 1][i]);
}
}
int score = 0;
for(int i = 0; i < num; i++)
{
if(i == pick - 1)
continue;
else
{
if(country[i][1] > country[pick - 1][1])
score++;
else if(country[i][1] == country[pick - 1][1]){
if(country[i][2] > country[pick - 1][2])
score++;
else if(country[i][2] == country[pick - 1][2])
{
if(country[i][3] > country[pick - 1][3])
score++;
}
}
}
}
cout << score + 1 << endl;
for(int i = 0; i < num; i++)
{
delete [] country[i];
}
delete [] country;
}