728x90
728x90
https://www.acmicpc.net/problem/1049
1049번: 기타줄
첫째 줄에 N과 M이 주어진다. N은 100보다 작거나 같은 자연수이고, M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에는 각 브랜드의 패키지 가격과 낱개의 가격이 공백으로 구분하여 주
www.acmicpc.net
난이도: solved.ac 실버 4
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
int N, M, i;
int min[2] = {1000, 1000}; // min[0]: 패키지 최소 가격, min[1]: 낱개 최소 가격
int six, one, sum = 0;
scanf("%d %d", &N, &M);
for (i = 0; i < M; i++) {
scanf("%d %d", &six, &one);
if (six < min[0])
min[0] = six;
if (one < min[1])
min[1] = one;
}
if (min[1] * 6 <= min[0]) // 낱개로 다 구매하는 게 제일 싼 경우
sum = min[1] * N;
else {
sum = (N / 6) * min[0]; // 일단 6으로 나눈 몫만큼 패키지로 삼
if (N % 6 != 0) { // 나머지가 있는 경우
if (min[0] < min[1] * (N % 6)) // 나머지를 패키지로 사는 게 더 싼 경우
sum += min[0];
else
sum += min[1] * (N % 6); // 나머지를 낱개로 나머지만큼만 사는 게 더 싼 경우
}
}
printf("%d", sum);
return 0;
}
반응형