Notice
Recent Posts
Recent Comments
Link
250x250
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

피너클의 it공부방

백준 4299 AFC 윔블던 (c++) : 피너클 본문

백준

백준 4299 AFC 윔블던 (c++) : 피너클

피너클 2022. 6. 2. 16:47
728x90
반응형

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

 

4299번: AFC 윔블던

원섭이는 잉글랜드 4부리그 풋볼 리그 2에서 활약하는 AFC 윔블던을 좋아한다. 이 팀은 2002년 윔블던 FC가 밀턴 킨스로 연고 이전을 감행하자 윔블던의 서포터들이 스스로 나서 창단한 팀이다. 윔

www.acmicpc.net

간단한 수학 문제다.

cin >> a >> b;

if (a < b) {
cout << -1 << endl;
	return 0;
}

 

 

합과 차를 입력받은 다음 만약 합이 차보다 작다면 바로 -1을 출력한다.

int n = (a + b) / 2;
int m = (a - b) / 2;

그 후 두 팀의 점수를 구한다. 두 팀의 점수를 각각 n과 m이라고 했을 때

n + m = a이고 (a = 두 팀 점수의 합) n - m = b이다 (b = 두 팀 점수의 차)

(n + m) + (n - m) = a + b = 2 * n이니 n은 (a + b) / 2이고

(n + m) - (n - m) = a - b = 2 * m이니 m은 (a - b) / 2이다.

if ((n + m != a) || n - m != b) cout << -1 << endl;
else cout << n << ' ' << m << endl;

만약 n과 m을 더한 값이 a와 다르거나 n과 m을 뺀 값이 b와 다르다면 -1을 출력하고

아니면 n과 m을 출력한다.

#include <iostream>

using namespace std;

int a, b;

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

	cin >> a >> b;

	if (a < b) {
		cout << -1 << endl;
		return 0;
	}

	int n = (a + b) / 2;
	int m = (a - b) / 2;

	if ((n + m != a) || n - m != b) cout << -1 << endl;
	else cout << n << ' ' << m << endl;
}

전체코드다.

728x90
반응형
Comments