https://www.acmicpc.net/problem/20003
λ¬Έμ
νλ‘λΆνΈλ¬ μ§μλ λ± λ¨μ΄μ§μ§ μλ μλ μ§μμ΄λ€. κ±°μ€λ¦λμ΄ λ¨λ κ²λ λ± μ§μμ΄λ€. μ§μκ° μμ΄ν μ μ¬λ € νλλ°, μμ΄ν μ κ°κ²©μ λ€ λΆμλ‘ μ΄λ£¨μ΄μ Έ μλ€. μ§κΈμ κ°λ Ή, 3/2μ½μΈμ μ¬λ €κ³ 2μ½μΈμ μ 립νκ³ κ²°μ νλ©΄ 1/2μ½μΈμ΄ λ¨μλ²λ¦¬λ κ²μ΄λ€. κ·Έλμ κ°λ°μ¬μκ² λͺ¨λ μμ΄ν μ λ± λ¨μ΄μ§κ² λλ μ μλ κ°κ²© λ¨μλ₯Ό 건μνκΈ° μν΄, μλ‘μ΄ κ°κ²© λ¨μλ μ΅λ λͺ μ½μΈμΈμ§λ₯Ό ꡬνλ €κ³ νλ€.
Nκ°μ μ’ λ₯μ μμ΄ν μ λ± λ¨μ΄μ§κ² λλ μ μλ μ½μΈ λ¨μλ₯Ό ꡬνλΌ. μ΄λ μμ΄ν κ³Ό μ½μΈμ λͺ¨λ λΆμ ννλ‘ λμμΌ νλ€.
μ λ ₯
첫 λ²μ§Έ μ€μλ μμ΄ν μ κ°μ N (1 ≤ N ≤ 50)μ΄ μ£Όμ΄μ§λ€.
λ λ²μ§Έ μ€λΆν°λ ν μ€μ λΆμ A, λΆλͺ¨ B (1 ≤ A, B ≤ 40) μμ΄ μ£Όμ΄μ§λ€. μ΄λ κΈ°μ½λΆμ ννκ° μλ μλ μλ€.
μΆλ ₯
μλ‘μ΄ μ½μΈ λ¨μμ λΆμ, λΆλͺ¨λ₯Ό 곡백μΌλ‘ ꡬλΆνμ¬ μΆλ ₯νλ€. λ¨, κΈ°μ½λΆμ ννμ΄λ€.
νμ΄
1. κ° λΆμλ€μ λΆλͺ¨μ μ΅μ곡배μλ‘ ν΅λΆ
2. λΆμλ€μ μ΅λ곡μ½μλ₯Ό ꡬν΄μ λ΅ λΆμ ꡬνκΈ°
3. λ΅λΆμ μ½λΆ
#include <iostream>
#include <vector>
using namespace std;
typedef long long ll;
typedef pair<ll, ll> ci;
ll getGcd(ll a, ll b) {
ll tmp;
while(b>0) {
tmp = a%b;
a = b;
b = tmp;
}
return a;
}
ll getLcm(ll a, ll b) {
return a / getGcd(a, b) * b;
}
int main() {
ios_base::sync_with_stdio(false); cin.tie(NULL);
int n, a, b;
ll gcd, lcm=1;
cin >> n;
vector<ci> v(n);
for(int i=0; i<n; i++) {
cin >> a >> b;
lcm = getLcm(b, lcm);
v[i] = {a,b};
}
// ν΅λΆνμ¬ λ€μ λ£μ΄μ£ΌκΈ°
ll boonmo = lcm;
for(int i=0; i<n; i++)
v[i] = {lcm / v[i].second * v[i].first, boonmo};
// λΆμλ€μ μ΅λ곡μ½μ ꡬν΄μ£ΌκΈ°
ll boonja = v[0].first;
for(int i=1; i<n; i++)
boonja = getGcd(boonja, v[i].first);
// μ½λΆνκΈ°
gcd = getGcd(boonmo, boonja);
boonja /= gcd;
boonmo /= gcd;
cout << boonja << " " << boonmo;
return 0;
}
/*
*/
'ποΈ ICPC Sinchon > Basic Math' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[BOJ][C++] λ°±μ€ 2981λ²: κ²λ¬Έ (0) | 2023.01.24 |
---|---|
[BOJ][C++] λ°±μ€ 17087λ²: μ¨λ°κΌμ§ 6 (0) | 2023.01.24 |
[BOJ][C++] λ°±μ€ 13241λ²: μ΅μ곡배μ (0) | 2023.01.24 |
[BOJ][C++] λ°±μ€ 1850λ²: μ΅λ곡μ½μ (0) | 2023.01.24 |
[BOJ S5][C++] λ°±μ€ 14490λ²: λ°±λμ΄ (0) | 2022.09.19 |