Computer Science/Algorithm Problem

백준] 2863 - 이게 분수?(COCI 2010/2011)

TwinParadox 2018. 8. 11. 23:29
728x90

시간 제한 : 1초

메모리 제한 : 128MB




입력

첫째 줄에 A와 B가 공백으로 구분되어 주어진다. 둘째 줄에 C와 D가 공백으로 구분되어 주어진다. 모든 수는 100보다 작거나 같은 양의 정수이다.




출력

첫째 줄에 표를 몇 번 돌려야 표의 값이 최대가 되는지 출력한다. 만약, 그러한 값이 여러개라면 가장 작은 값을 출력한다.




소스코드

#include <iostream>
using namespace std;
int main(void)
{
	int cnt, ans;
	double a, b, c, d, max = 0, tmp;
	cin >> a >> b >> c >> d;

	for (cnt = 0; cnt < 4; cnt++)
	{
		switch (cnt)
		{
		case 0:
			tmp = a / c + b / d;
			break;
		case 1:
			tmp = c / d + a / b;
			break;
		case 2:
			tmp = d / b + c / a;
			break;
		case 3:
			tmp = b / a + d / c;
			break;
		}
		if (tmp > max)
			max = tmp, ans = cnt;
	}
	cout << ans;
}




Tip

수학 분류라고 써있긴 하나 그냥 네 가지 케이스 중 가장 큰 값만 찾으면 되는 문제다.



728x90