celina의 이것저것

[C++] 백준 10707번 - 수도요금 본문

자료구조&알고리즘/백준

[C++] 백준 10707번 - 수도요금

celinayk 2023. 1. 5. 17:00
반응형

문제

JOI군이 살고 있는 지역에는 X사와 Y사, 두 개의 수도회사가 있다. 두 회사의 수도요금은 한 달간 수도의 사용량에 따라 다음과 같이 정해진다.
X사 : 1리터당 A엔.
Y사 : 기본요금은 B엔이고, 사용량이 C리터 이하라면 요금은 기본요금만 청구된다. 사용량이 C리터가 넘었을 경우 기본요금 B엔에 더해서 추가요금이 붙는다. 추가요금은 사용량이 C리터를 넘었을 경우 1리터를 넘었을 때마다 D엔이다.
JOI군의 집에서 한 달간 쓰는 수도의 양은 P리터이다.
수도요금이 최대한 싸게 되도록 수도회사를 고를 때, JOI군의 집의 1달간 수도요금을 구하여라.

입력

입력은 5줄이고 한 줄에 하나씩 정수가 입력된다.
첫 번째 줄에는 X사의 1리터당 요금 A가 입력된다.
두 번째 줄에는 Y사의 기본요금 B가 입력된다.
세 번째 줄에는 Y사의 요금이 기본요금이 되는 사용량의 상한 C가 입력된다.
네 번째 줄에는 Y사의 1리터 당 추가요금 D가 입력된다.
다섯 번째 줄에는 JOI군의 집에서 사용하는 한 달간 수도의 양 P가 입력된다.
입력되는 정수 A,B,C,D,P는 전부 1 이상 10000 이하이다.

출력

JOI군의 집에서 지불하는 한 달간 수도요금을 첫째 줄에 출력한다.

 

접근

수도요금은 X사 아니면 Y사 둘중 하나라서 X사의 계산대로,Y사의 계산대로 해서 저렴한 요금을 선택하면 된다

 

코드

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>  
#include <algorithm>
using namespace std;


int main() {

    int a,b,c,d,p;
    int x = 0;
    int y = 0;

    scanf("%d %d %d %d %d", &a, &b, &c, &d, &p);
    
    x = a * p;

    if (p <= c) {
        y = b;
    }
    else {
        y = b + (d* (p - c));
    }

    printf("%d", min(x, y));

    
    return 0;
}

 

출처

10707번: 수도요금 (acmicpc.net)

 

10707번: 수도요금

JOI군이 살고 있는 지역에는 X사와 Y사, 두 개의 수도회사가 있다. 두 회사의 수도요금은 한 달간 수도의 사용량에 따라 다음과 같이 정해진다. X사 : 1리터당 A엔. Y사 : 기본요금은 B엔이고, 사용량

www.acmicpc.net

 

Comments