문제링크 : https://www.acmicpc.net/problem/5545
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
const int MAX = INT_MAX;
int N, A, B, C; //토핑 갯수, 도우 가격, 토핑 가격, 도우 열량
int arr[10001];
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cin >> N >> A >> B >> C;
for(int i=0; i<N; i++)
{
cin >> arr[i];
}
sort(arr, arr+N, greater<>()); //토핑 열량이 높은 순서대로 비교
int result = C/A; //1원당 열량 (최고)
for(int i=0; i<N; i++)
{
result = max(result, (C+=arr[i])/(A+=B));
}
cout << result;
return 0;
}
토핑 열량이 높은 순서대로 비교하기 위해 입력받은 토핑을 내림차순으로 정렬해준다.
초기값으로 1원당 열량 값 (토핑이 없을 때의 값) 을 설정해준다.
이후 새롭게 열량과 가격을 추가해가며 1원당 열량 값을 갱신하고, 이렇게 갱신한 값 중 가장 큰 값을 출력한다.
'백준 > 실버' 카테고리의 다른 글
[백준 12852번] 1로 만들기 2 (C++) (0) | 2024.07.09 |
---|---|
[백준 2502번] 떡 먹는 호랑이 (C++) (0) | 2024.07.08 |
[백준 20044번] Project Teams (C++) (0) | 2024.06.30 |
[백준 15970번] 화살 그리기 (C++) (0) | 2024.06.28 |
[백준 14469번] 소가 길을 건너간 이유 3 (C++) (0) | 2024.06.27 |