https://www.acmicpc.net/problem/8718
8718번: Bałwanek
W pierwszym wierszu wejścia znajdują się dwie liczby całkowite x, k (1 ≤ x ≤ 106, 1 ≤ k ≤ 105, k < x), oznaczające odpowiednio ilość litrów śniegu w parku oraz z ilu litrów śniegu zbudowana jest jedna z kul śnieżnych bałwana.
www.acmicpc.net
방정식을 세워 답을 구하는 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
x, k를 선언 후 입력받습니다.
📔 풀이과정
눈 사람은 총 세 부분입니다. 따라서 주어진 k는 눈사람을 구성하는 세 덩이 중 하나입니다.
1. k가 가장 위에 위치한 덩어리인 경우 : 그 덩이를 a라 했을 때 중간 덩이는 2a, 가장 아래 덩이는 4a입니다. 7a <= k라는 공식이 성립한다면 주어진 k는 가장 위에 위치한 덩어리입니다.
2. k가 중간에 위치한 덩어리인 경우 : 마찬가지로 a라 했을 때 가장 위 덩이는 1/2a, 가장 아래 덩이는 2a입니다. 7/2k <= x라는 공식이 성립합니다.
3. k가 가장 아래 덩이인 경우 : 중간 덩이는 1/2k, 가장 위 덩이는 1/4k이므로 7/4k <= x입니다.
단위가 밀리미터이므로 양변에 1000을 곱해줍니다.그러면 1번은 7000a <= 1000k, 2번 3500k <= 1000x, 3번 1750k <= 1000x라는 공식을 가집니다.
4. 1, 2, 3번 중에 해당하는 조건을 각각 a, b, c에 저장합니다.
📔 정답출력
a, b, c 중 최댓값을 출력합니다.
📕 Code
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll x, k, a, b, c;
int main(){
cin >> x >> k;
if(7000 * k <= 1000 * x) a = 7000 * k;
if(3500 * k <= 1000 * x) b = 3500 * k;
if(1750 * k <= 1000 * x) c = 1750 * k;
cout << max({a,b,c});
}
'Algorithm > Math' 카테고리의 다른 글
(C++) - 백준(BOJ) 8723번 : Patyki (0) | 2021.09.14 |
---|---|
(C++) - 백준(BOJ) 21771번 : 가희야 거기서 자는 거 아니야 (0) | 2021.09.13 |
(C++) - 백준(BOJ) 6768번 : Don’t pass me the ball! (0) | 2021.09.10 |
(C++) - 백준(BOJ) 1173번 : 운동 (0) | 2021.08.18 |
(C++) - 백준(BOJ) 1284번 : 집 주소 (0) | 2021.08.15 |