πŸ™‡β€β™€οΈ[Silver V] μ˜¬λ¦Όν”½ - 8979

문제 링크

μ„±λŠ₯ μš”μ•½

λ©”λͺ¨λ¦¬: 2156 KB, μ‹œκ°„: 0 ms

λΆ„λ₯˜

κ΅¬ν˜„, μ •λ ¬

제좜 일자

2023λ…„ 12μ›” 26일 15:29:55

문제 μ„€λͺ…

μ˜¬λ¦Όν”½μ€ 참가에 μ˜μ˜κ°€ μžˆκΈ°μ— κ³΅μ‹μ μœΌλ‘œλŠ” κ΅­κ°€κ°„ μˆœμœ„λ₯Ό μ •ν•˜μ§€ μ•ŠλŠ”λ‹€. κ·ΈλŸ¬λ‚˜, λ§Žμ€ μ‚¬λžŒλ“€μ΄ μžμ‹ μ˜ κ΅­κ°€κ°€ μ–Όλ§ˆλ‚˜ 잘 ν•˜λŠ”μ§€μ— 관심이 많기 λ•Œλ¬Έμ— λΉ„κ³΅μ‹μ μœΌλ‘œλŠ” κ΅­κ°€κ°„ μˆœμœ„λ₯Ό μ •ν•˜κ³  μžˆλ‹€. 두 λ‚˜λΌκ°€ 각각 얻은 금, 은, 동메달 μˆ˜κ°€ 주어지면, 보톡 λ‹€μŒ κ·œμΉ™μ„ 따라 μ–΄λŠ λ‚˜λΌκ°€ 더 μž˜ν–ˆλŠ”μ§€ κ²°μ •ν•œλ‹€.

  1. κΈˆλ©”λ‹¬ μˆ˜κ°€ 더 λ§Žμ€ λ‚˜λΌ
  2. κΈˆλ©”λ‹¬ μˆ˜κ°€ κ°™μœΌλ©΄, 은메달 μˆ˜κ°€ 더 λ§Žμ€ λ‚˜λΌ
  3. 금, 은메달 μˆ˜κ°€ λͺ¨λ‘ κ°™μœΌλ©΄, 동메달 μˆ˜κ°€ 더 λ§Žμ€ λ‚˜λΌ

각 κ΅­κ°€λŠ” 1λΆ€ν„° N μ‚¬μ΄μ˜ μ •μˆ˜λ‘œ ν‘œν˜„λœλ‹€. ν•œ κ΅­κ°€μ˜ λ“±μˆ˜λŠ” (μžμ‹ λ³΄λ‹€ 더 μž˜ν•œ λ‚˜λΌ 수) + 1둜 μ •μ˜λœλ‹€. λ§Œμ•½ 두 λ‚˜λΌκ°€ 금, 은, 동메달 μˆ˜κ°€ λͺ¨λ‘ κ°™λ‹€λ©΄ 두 λ‚˜λΌμ˜ λ“±μˆ˜λŠ” κ°™λ‹€. 예λ₯Ό λ“€μ–΄, 1번 κ΅­κ°€κ°€ κΈˆλ©”λ‹¬ 1개, 은메달 1개λ₯Ό μ–»μ—ˆκ³ , 2번 ꡭ가와 3번 κ΅­κ°€κ°€ λͺ¨λ‘ 은메달 1개λ₯Ό μ–»μ—ˆμœΌλ©°, 4번 κ΅­κ°€λŠ” 메달을 얻지 λͺ»ν•˜μ˜€λ‹€λ©΄, 1번 κ΅­κ°€κ°€ 1λ“±, 2번 ꡭ가와 3번 κ΅­κ°€κ°€ 곡동 2λ“±, 4번 κ΅­κ°€κ°€ 4등이 λœλ‹€. 이 경우 3등은 μ—†λ‹€.

각 κ΅­κ°€μ˜ 금, 은, 동메달 정보λ₯Ό μž…λ ₯λ°›μ•„μ„œ, μ–΄λŠ κ΅­κ°€κ°€ λͺ‡ 등을 ν–ˆλŠ”μ§€ μ•Œλ €μ£ΌλŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

μž…λ ₯

μž…λ ₯의 첫 쀄은 κ΅­κ°€μ˜ 수 N(1 ≀ N ≀ 1,000)κ³Ό λ“±μˆ˜λ₯Ό μ•Œκ³  싢은 κ΅­κ°€ K(1 ≀ K ≀ N)κ°€ λΉˆμΉΈμ„ 사이에 두고 주어진닀. 각 κ΅­κ°€λŠ” 1λΆ€ν„° N μ‚¬μ΄μ˜ μ •μˆ˜λ‘œ ν‘œν˜„λœλ‹€. 이후 N개의 각 μ€„μ—λŠ” μ°¨λ‘€λŒ€λ‘œ 각 κ΅­κ°€λ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜μ™€ 이 κ΅­κ°€κ°€ 얻은 금, 은, λ™λ©”λ‹¬μ˜ μˆ˜κ°€ λΉˆμΉΈμ„ 사이에 두고 주어진닀. 전체 메달 수의 총합은 1,000,000 μ΄ν•˜μ΄λ‹€.

좜λ ₯

좜λ ₯은 단 ν•œ 쀄이며, μž…λ ₯받은 κ΅­κ°€ K의 λ“±μˆ˜λ₯Ό ν•˜λ‚˜μ˜ μ •μˆ˜λ‘œ 좜λ ₯ν•œλ‹€. λ“±μˆ˜λŠ” λ°˜λ“œμ‹œ λ¬Έμ œμ—μ„œ μ •μ˜λœ 방식을 따라야 ν•œλ‹€.

πŸš€ν’€μ΄

λ‚˜λŠ” 각 λ‚˜λΌλ₯Ό ꡬ쑰체둜 λ§Œλ“€μ–΄μ„œ ν’€μ—ˆλ‹€.

struct country
{
	int idx;
	int gold;
	int silver;
	int bronze;
};

λ‚˜λΌλ“€μ˜ 정보λ₯Ό 담을 배열을 λ§Œλ“€κ³  각 정보듀을 배열에 μ±„μ›Œμ€Œκ³Ό λ™μ‹œμ— k와 같은 κ²½μš°λŠ” λ”°λ‘œ 정보λ₯Ό λΉΌλ‘μ—ˆλ‹€.

그리고 λ‹€μ‹œ 배열을 μˆœνšŒν•˜λ©΄μ„œ λ“±μˆ˜ 계산을 쑰건에 λ§žμΆ°ν–ˆλ‹€.

vector<country> vec;

int n, k;
void solve()
{
	cin >> n >> k;
	vec = vector<country>(n + 1);
	int idx, g, s, b, pos = 0, res = 1;
	for (int i = 0; i < n; ++i)
	{
		cin >> vec[i].idx >> vec[i].gold >> vec[i].silver >> vec[i].bronze;
		if (vec[i].idx == k)
			pos = i;
	}

	for (int i = 0; i < n; ++i)
	{
		if (vec[i].gold > vec[pos].gold)
		{
			res++;
		}
		else if (vec[i].gold == vec[pos].gold && vec[i].silver > vec[pos].silver)
		{
			res++;
		}
		else if (vec[i].gold == vec[pos].gold && vec[i].silver == vec[pos].silver && vec[i].bronze > vec[pos].bronze)
		{
			res++;
		}
	}

	cout << res;
}

μ„œλΈŒν…ŒμŠ€ν¬μ΄κΈΈλž˜ 100점이 λ‚˜μ˜¬κΉŒ μ‹Άμ—ˆλŠ”λ° κ·Έλƒ₯ λ°”λ‘œ 100점이 λ‚˜μ™”λ‹€.

πŸš€μ „μ²΄ μ½”λ“œ

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include<iostream>
#include <fstream>
#include <vector>
#include <algorithm>

using namespace std;

struct country
{
	int idx;
	int gold;
	int silver;
	int bronze;
};

vector<country> vec;

int n, k;
void solve()
{
	cin >> n >> k;
	vec = vector<country>(n + 1);
	int idx, g, s, b, pos = 0, res = 1;
	for (int i = 0; i < n; ++i)
	{
		cin >> vec[i].idx >> vec[i].gold >> vec[i].silver >> vec[i].bronze;
		if (vec[i].idx == k)
			pos = i;
	}

	for (int i = 0; i < n; ++i)
	{
		if (vec[i].gold > vec[pos].gold)
		{
			res++;
		}
		else if (vec[i].gold == vec[pos].gold && vec[i].silver > vec[pos].silver)
		{
			res++;
		}
		else if (vec[i].gold == vec[pos].gold && vec[i].silver == vec[pos].silver && vec[i].bronze > vec[pos].bronze)
		{
			res++;
		}
	}

	cout << res;
}

int main() 
{
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);
	//freopen("input.txt", "rt", stdin);

	solve();

	return 0;
}

νƒœκ·Έ:

μΉ΄ν…Œκ³ λ¦¬:

μ—…λ°μ΄νŠΈ: