문제링크 : https://www.acmicpc.net/problem/5046
5046번: 전국 대학생 프로그래밍 대회 동아리 연합
첫째 줄에 참가자의 수 1 ≤ N ≤ 200, 예산 1 ≤ B ≤ 500000, 호텔의 수 1 ≤ H ≤ 18, 고를 수 있는 주의 개수 1 ≤ W ≤ 13이 주어진다. 다음 줄부터 각 호텔의 정보가 주어지며, 호텔의 정보는 두 줄로
www.acmicpc.net
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
const int MAX = 987654321;
int arr[19];
int result = MAX;
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
int N, B, H, W;
cin >> N >> B >> H >> W;
for(int i=0; i<H; i++)
{
int p;
cin >>p;
for(int j=0; j<W; j++)
{
cin >> arr[i];
if(arr[i] < N) continue; //인원 확인
if(p*N > B) continue; //예산 확인
result = min(result, p * N); //최소 비용 저장
}
}
if(result==MAX) cout << "stay home";
else cout << result;
return 0;
}
단순한 구현 문제이다.
각 주의 인원이 총 인원보다 작은 지를 확인하고,
현재 비용에 따른 총비용이 예산을 넘는 지를 확인하고,
위에 2가지 조건을 무사히 통과하면 최소 비용을 저장한다.
'백준 > 실버' 카테고리의 다른 글
[백준 28217번] 두 정삼각형 (C++) (0) | 2023.08.02 |
---|---|
[백준 14709번] 여우 사인 (C++) (0) | 2023.08.02 |
[백준 14569번] 시간표 짜기 (C++) (0) | 2023.08.01 |
[백준 25206번] 너의 평점은 (C++) (0) | 2023.08.01 |
[백준 1158번] 요세푸스 문제 (C++) (0) | 2023.07.31 |