작성일 :

문제 링크

10599번 - 페르시아의 왕들

설명

한 인물의 생몰 연도 추정 범위가 주어졌을 때, 그가 살았을 수 있는 최소 나이와 최대 나이를 계산하는 문제입니다.


입력은 네 개의 정수로 주어집니다:

  • [a, b]: 출생일 추정 범위
  • [c, d]: 사망일 추정 범위

출생일은 a~b, 사망일은 c~d라고 했을 때

  • 최소 나이: c - b
  • 최대 나이: d - a

연도는 BC 포함 범위이기 때문에 음수도 들어올 수 있음에 주의합니다.


접근법

  • 각 줄마다 4개의 정수를 입력받습니다.
  • 입력이 0 0 0 0이면 종료합니다.
  • 각 줄마다 최소 나이와 최대 나이를 계산하여 출력합니다.

Code

C#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
using System;

class Program {
  static void Main() {
    while (true) {
      var line = Console.ReadLine().Split();
      int a = int.Parse(line[0]);
      int b = int.Parse(line[1]);
      int c = int.Parse(line[2]);
      int d = int.Parse(line[3]);

      if (a == 0 && b == 0 && c == 0 && d == 0) break;

      int minAge = c - b;
      int maxAge = d - a;
      Console.WriteLine($"{minAge} {maxAge}");
    }
  }
}

C++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <bits/stdc++.h>
using namespace std;

int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);

  while (true) {
    int sB, eB, sD, eD; cin >> sB >> eB >> sD >> eD;
    if (!sB && !eB && !sD && !eD) break;
    cout << sD - eB << " " << eD - sB << "\n";
  }

  return 0;
}