[백준 26741] Farma (C#, C++) - soo:bak
작성일 :
문제 링크
설명
머리 수와 다리 수가 주어질 때, 닭과 소의 마릿수를 각각 구하는 문제입니다.
닭은 다리가 2개, 소는 다리가 4개입니다.
접근법
먼저 닭의 수를 A, 소의 수를 B라 하면 두 가지 조건이 성립합니다. 머리 수의 합은 A + B = X이고, 다리 수의 합은 2A + 4B = Y입니다.
다음으로 첫 번째 식에서 A = X - B를 두 번째 식에 대입하면 2(X - B) + 4B = Y가 됩니다. 이를 정리하면 2X + 2B = Y이므로 B = (Y - 2X) / 2로 소의 수를 구할 수 있습니다.
이후 전체 머리 수에서 소의 수를 빼면 닭의 수 A = X - B를 얻습니다.
Code
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
using System;
class Program {
static void Main() {
var parts = Console.ReadLine()!.Split();
var x = long.Parse(parts[0]);
var y = long.Parse(parts[1]);
var cows = (y - 2 * x) / 2;
var chickens = x - cows;
Console.WriteLine($"{chickens} {cows}");
}
}
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 x, y; cin >> x >> y;
ll cows = (y - 2 * x) / 2;
ll chickens = x - cows;
cout << chickens << " " << cows << "\n";
return 0;
}