728x90
시간 제한 : 1초
메모리 제한 : 128MB
입력
첫째 줄에 참가자의 수 1 ≤ N ≤ 200, 예산 1 ≤ B ≤ 500000, 호텔의 수 1 ≤ H ≤ 18, 고를 수 있는 주의 개수 1 ≤ W ≤ 13이 주어진다. 다음 줄부터 각 호텔의 정보가 주어지며, 호텔의 정보는 두 줄로 이루어져 있다. 첫번째 줄에는 그 호텔의 일인당 숙박비용 1 ≤ p ≤ 10000이 주어지고, 둘째 줄에는 i번째 주에 투숙 가능한 인원 0 ≤ a ≤ 1000이 주어진다.
출력
첫째 줄에 대회를 개최할 수 있으면 최소 비용을 출력하고, 없으면 "stay home"을 출력한다.
소스코드
#include <iostream> using namespace std; int main(void) { int n, b, h, w, min, p, sum = 0; cin >> n >> b >> h >> w; min = b + 1; for (int i = 0; i < h; i++) { cin >> p; sum = 0; for (int k = 0, tmp; k < w; k++) { cin >> tmp; if (tmp >= n) sum = p*n; } if (min > sum && sum != 0) min = sum; } if (min > b) cout << "stay home"; else cout << min; }
Tip
단순 구현 문제로, 최솟값을 구할 수 있는 경우 최솟값을 경신해주고 최솟값이 지불 가능한 비용보다 큰 지 판정하는 과정만 거치면 된다.
728x90
'Computer Science > Algorithm Problem' 카테고리의 다른 글
백준] 2875 - 대회 or 인턴(COCI 2010/2011) (0) | 2018.01.30 |
---|---|
백준] 3035 - 스캐너(COCI 2006/2007) (0) | 2018.01.30 |
백준] 11048 - 이동하기 (0) | 2018.01.25 |
백준] 1788 - 피보나치 수의 확장 (0) | 2018.01.24 |
백준] 2798 - 블랙잭(COCI 2011/2012) (0) | 2018.01.23 |