문제 : https://www.acmicpc.net/problem/16283


[알고리즘풀이]

단순 구현 문제로, N의 최대 크기가 1000이므로 전체 경우를 다 순회하며 O(N)으로 풀면 된다.

양이 k 마리, 염소가 n - k라고 하고 k를 1부터 n - 1까지 순회하며 가능한 경우를 찾는다.

#include<iostream>

using namespace std;

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

	int a, b, n, w;
	cin >> a >> b >> n >> w;
	int count = 0, index = 0;
	for (int i = 1; i < n; i++) {
		if ((a * i + b * (n - i)) == w) {
			count++;
			index = i;
		}
	}
	if (count == 0 || count > 1)
		cout << -1;
	else
		cout << index << ' ' << n - index;
	return 0;
}

 

'Problem Solving > ICPC' 카테고리의 다른 글

[ICPC][BOJ] 16287 - Parcel  (0) 2019.09.28
[ICPC][BOJ] 16282 - Black Chain  (0) 2019.09.28
[ICPC][BOJ] 13328 - Message Passing  (0) 2019.09.23
[ICPC][BOJ] 13333 - 'Q-Index'  (0) 2019.09.23
[ICPC][BOJ] 13335 - Trucks  (0) 2019.09.23

+ Recent posts