반응형

● 문제 접근 과정

  1. 각 칸에는 −999 이상 999 이하의 정수만 입력할 수 있다. 수현이가 버추얼 친구들을 만나러 버추얼 세계로 떠날 수 있게 도와주자. 
  2. 식에 맞게 a,b,c,d,e,f,x,y를 모두 선언을 한 후에, x,y를 제외하고 입력을 받는다.
  3. 이중 for문을 이용하여 x와y값에 i와j를 곱하여 준다.
  4. if ((a * (x * i)) + (b * (y * j)) == c && (d * (x * i)) + (e * (y * j)) == f)) 이 조건문 즉, 연립방정식이 풀릴 때 출력을 하고 프로그램을 종료시킨다.

● 구현

#include <iostream>
using namespace std;

int main() {
  int a, b, c, d, e, f, x = 1, y = 1;

  cin >> a >> b >> c >> d >> e >> f;

  for (int i = -1000; i < 1000; i++) {
    for (int j = -1000; j < 1000; j++) {
      if ((a * (x * i)) + (b * (y * j)) == c &&
          (d * (x * i)) + (e * (y * j)) == f) {
        if (x * i == 1 && y * j == 1) {
          continue;
        } else if (x * i == -1 && y * j == -1) {
          continue;
        } else {
          cout << x * i << " " << y * j;
          return 0;
        }
      }
    }
  }

  return 0;
}

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

 

반응형

+ Recent posts