※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 24867번 문제인 Два станка이다.
문제는 아래 링크를 확인하자.

https://www.acmicpc.net/problem/24867 

 

24867번: Два станка

В примере выгодно сначала ввести в строй второй станок и за оставшиеся $15$ минут изготовить $45$ деталей, а затем ввести в строй первый и за ост

www.acmicpc.net

단순히 하나의 기계만을 키는 것이 아닌, 두 기계 A와 B에 대하여 A를 먼저 가동시키고 다음에 B를 가동시키는 시도와 B를 먼저 가동시키고 다음에 A를 가동시키는 시도의 생산량 중 최댓값을 출력해주자.

 

답이 32비트 정수 자료형을 넘어갈 수 있으므로 64비트 정수 자료형을 이용하자.

 

아래는 제출한 소스코드이다.

#include <iostream>
using namespace std;
typedef long long ll;

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	ll K; cin >> K;
	ll A, X, B, Y; cin >> A >> X >> B >> Y;
	
	ll ans = 0;
	
	if (A < K) {
		ll timeleft = K - A;
		ll prod = timeleft * X;
		if (B < timeleft) {
			prod += (timeleft - B) * Y;
		}
		ans = max(ans, prod);
	}

	if (B < K) {
		ll timeleft = K - B;
		ll prod = timeleft * Y;
		if (A < timeleft) {
			prod += (timeleft - A) * X;
		}
		ans = max(ans, prod);
	}

	cout << ans;
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 25001 // C++] Pen  (0) 2022.05.01
[BOJ 24999 // C++] Prom  (0) 2022.05.01
[BOJ 1065 // C++] 한수  (0) 2022.05.01
[BOJ 24931 // C++] Patchwork  (0) 2022.05.01
[BOJ 24935 // C++] Travelling Caterpillar  (0) 2022.05.01

+ Recent posts