본문 바로가기

코드포스

[코드포스 Practice14] A. Cheap Travel

 

좀 쉬워서 놀랬다.

A가 이정도는 아니었는데?? (근데 한 번 틀렸음ㅋㅋ)

 

m * a랑 b랑 비교하면 되는 문제였다.

만약 b가 더 작으면 n개 중 되는대로 m개를 채우고 남은건 a로 채우면 되겠다 싶었다. 

 

그런데 틀렸다ㅋㅋ

전에 양념치킨 문제랑 비슷하게 틀려서 빨리 찾을 수 있었음. 

양념치킨 문제에서 딱 n개만큼 안 사고 싸다면 더 많은 양을 사면 됐다. 

 

이 문제도 b가 터무니없이 싸면 그냥 n개 이상으로 사도 괜찮았다. 

 

이거 고치니 맞았다ㅎㅎ 

 

#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <functional>
#include <string>
 
using namespace std;
using i64 = long long;
 
int main() {
    int n, m, a, b;
    scanf("%d %d %d %d", &n, &m, &a, &b);
    
    if (a * m > b)
    {
        int sum = (n / m) * b;
        sum += min((n % m) * a, b);
        printf("%d",  sum);
    }
    else
        printf("%d", n * a);
    
    return 0;
}