※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 24302번 문제인 КУРИЕРИ이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/24302
24302번: КУРИЕРИ
На единствения ред на стандартния изход програмата трябва да изведе общата сума за транспортирането на заявените сладкиши до клиентите въ
www.acmicpc.net
각 택배의 운송거리를 1000으로 나누어 몇 km대를 옮겨야하는 택배인지를 구하고, 해당 택배를 표의 범위에 맞춰 각 운송비를 계산하자.
택배별로 더 싼 비용으로 운송하는 방식을 선택한 뒤 두 비용을 합치고, 비용을 잘 출력해주면 문제를 해결할 수 있다.
소수점 아래의 단위를 출력할 때, leading zero의 개수에 유의하여 출력하자.
아래는 제출한 소스코드이다.
#include <iostream>
using namespace std;
int func1(int x) {
if (x <= 5) return 400;
if (x <= 10) return 700;
if (x <= 20) return 1200;
if (x <= 30) return 1700;
return x * 57;
}
int func2(int x) {
if (x <= 2) return 90 + x * 90;
if (x <= 5) return 100 + x * 85;
if (x <= 20) return 125 + x * 80;
if (x <= 40) return 325 + x * 70;
return 925 + 55 * x;
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int N, M; cin >> N >> M;
N /= 1000, M /= 1000;
int ans = min(func1(N), func2(N)) + min(func1(M), func2(M));
if (ans % 100 > 9)cout << ans / 100 << '.' << ans % 100;
else cout << ans / 100 << '.' << '0' << ans % 100;
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 24935 // C++] Travelling Caterpillar (0) | 2022.05.01 |
---|---|
[BOJ 25083 // C++] 새싹 (0) | 2022.05.01 |
[BOJ 24924 // C++] Card Divisibility (0) | 2022.05.01 |
[BOJ 24923 // C++] Canadians, eh? (0) | 2022.05.01 |
[BOJ 24977 // C++] Visits (0) | 2022.04.30 |