[백준 18301] Rats (C#, C++) - soo:bak
작성일 :
문제 링크
설명
쥐의 총 개체 수를 추정하는 문제입니다. 첫째 날에 n₁마리를 포획하여 표시한 후 방류하고, 둘째 날에 다시 n₂마리를 포획합니다. 이때 둘째 날 포획한 개체 중 첫날 표시가 있는 개체 수가 n₁₂마리입니다.
이 세 값을 이용하여 전체 쥐의 개체 수를 추정해야 합니다.
접근법
주어진 공식 N = ⌊(n₁ + 1)(n₂ + 1) / (n₁₂ + 1) - 1⌋을 계산하여 총 개체 수를 구합니다.
모든 입력 값이 10,000 이하이므로 곱셈 결과가 약 10⁸을 넘지 않아 64비트 정수로 충분히 처리 가능합니다.
Code
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using System;
namespace Solution {
class Program {
static void Main(string[] args) {
var tokens = Console.ReadLine()!.Split();
var n1 = long.Parse(tokens[0]);
var n2 = long.Parse(tokens[1]);
var n12 = long.Parse(tokens[2]);
var numerator = (n1 + 1) * (n2 + 1);
var denominator = n12 + 1;
var result = numerator / denominator - 1;
Console.WriteLine(result);
}
}
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
ll n1, n2, n12; cin >> n1 >> n2 >> n12;
ll numerator = (n1 + 1) * (n2 + 1);
ll denominator = n12 + 1;
cout << (numerator / denominator - 1) << "\n";
return 0;
}