티스토리 뷰

728x90
반응형

 백준 온라인 저지(BOJ) 19532번 수학은 비대면강의입니다
https://www.acmicpc.net/problem/19532

 

19532번: 수학은 비대면강의입니다

정수 $a$, $b$, $c$, $d$, $e$, $f$가 공백으로 구분되어 차례대로 주어진다. ($-999 \leq a,b,c,d,e,f \leq 999$) 문제에서 언급한 방정식을 만족하는 $\left(x,y\right)$가 유일하게 존재하고, 이 때 $x$와 $y$가 각각 $-

www.acmicpc.net

* 사용언어 : C언어, C++

 

1. 문제

유일한 정수해(x, y)가 존재하는 2개의 연립방정식을 풀고 x, y 를 출력

 

2. 풀이

x, y 가 정수이고 범위도 그리 크지 않기 때문에
x, y 를 각각 -999 부터 999 까지 대입하면서 등호가 성립할 때 출력해도 됩니다.
 
저는 연립방정식을 아래와 같이 풀었고, 그 결과를 활용하여 구현했습니다.
연립방정식 풀이 및 구현 코드는 아래 참고하시면 됩니다.

x, y 계산식의 분모가 0 인 경우, 유일한 해를 갖지 못합니다

 

3. 코드

#ifndef _CRT_SECURE_NO_WARNINGS
#define _CRT_SECURE_NO_WARNINGS
#endif
/*
19532_수학은 비대면강의입니다
1112KB	0ms
*/
#include <cstdio>

int main() {
#ifdef _WIN32
	freopen("input.txt", "r", stdin);
#endif // _WIN32
	int a, b, c, d, e, f;
	scanf("%d %d %d %d %d %d", &a, &b, &c, &d, &e, &f);

	int y = (c * d - a * f) / (b * d - a * e);
	int x = (c * e - b * f) / (a * e - b * d);
	
	printf("%d %d\n", x, y);
	return 0;
}

 

728x90
반응형
댓글