#include <iostream>
#include <cmath>
using namespace std;
int main() {
int w, i0, t, d, input, output;
cin >> w >> i0 >> t;
cin >> d >> input >> output;
int w1 = w;
int w2 = w;
int i2 = i0;
//1. 일일 기초 대사량 변화를 고려하지 않았을 때
for (int day = 0; day < d; day++) {
w1 += input - (i0 + output);
w2 += input - (i2 + output);
if (abs(input-(i2+output)) > t) { //기초대사량 변화 역치보다 많다면
i2 += floor((input - (i2 + output)) / 2.0); //일일 기초대사량 변화.
}
}
if (w1 <= 0) {
//사망
cout << "Danger Diet\n";
}
else {
cout << w1 << " " << i0 << "\n";
}
if (w2 <= 0 || i2 <= 0) {
//사망
cout << "Danger Diet\n";
}
else {
cout << w2 << " " << i2 <<" ";
if ((i0-i2) > 0) {
//요요
cout << "YOYO";
}
else {
cout << "NO";
}
}
}
일일 기초 대사량 변화를 고려하지 않았을 때와 고려했을 때를 잘 판단하여 코드를 작성해야 한다. 이때 w1, w2는 각각의 몸무게를 의미한다. 상황에 맞추어 잘 계산을 해준다. i2는 변화한 기초대사량.
첫번째 상황에서는 기초대사량을 고려하지 않으므로 몸무게만 고려한다. 그래서 w1<=0의 조건을 사용하였다.
요요가 오는 로직에서도 기존의 기초대사량보다 변화한 기초대사량이 더 낮으면 요요가 올 것이므로 이 로직을 그대로 조건식에 갖다 붙이면 된다.
'백준' 카테고리의 다른 글
[백준/C++] 11478: 서로 다른 부분 문자열의 개수 (0) | 2025.02.18 |
---|---|
[백준/C++] 1431: 시리얼 번호 (0) | 2025.02.18 |
[백준] 27866: 문자와 문자열 (자바) (0) | 2024.05.19 |
[백준] 1546: 평균 (자바) (0) | 2024.05.19 |
[백준] 10811: 바구니 뒤집기 (자바) (0) | 2024.05.19 |