Programming/백준

[브론즈 2] 백준 1263 - 펫 (파이썬)

pental 2025. 9. 9. 13:01

https://www.acmicpc.net/problem/1362

여러 테케가 주어지며 각 케이스는 O W로 시작한다. 0 0 이면 전체 입력이 종료된다.

각 테케마다 # 0 이 주어지면 그 케이스는 끝이 난다.

E x 는 체중을 빼고, F x는 체중을 더한다. 하지만 처리 도중 W <= 0 이 되는 순간 죽는것이다. 그 뒤 명령은 반영하지 않고, # 0 까지 입력만 진행한다.

최종적으로 사망하면 RIP, 생존이고 적정 체중의 1.5배 및 2배 미만이면 :-), 그 외는 :-(을 출력하는 문제이다.

# 백준 1362 - 펫
import sys
input = sys.stdin.readline

def opt(O, W) :
    if W > O * 0.5 and W < 2 * O :
        return ":-)"
    elif W <= 0 :
        return "RIP"
    else :
        return ":-("
index = 1
while True :
    O, W = map(int, input().split())
    if O == 0 and W == 0 :
        break
    alive = (W > 0)
    while True :
        DATA = input().split()
        op = DATA[0]
        weight = int(DATA[1])
        if op == "#" and weight == 0 :
            if not alive:
                print(index, "RIP")
            else:
                print(index, opt(O, W))
            index += 1
            break
        if alive :
            if op == "E" :
                W -= weight
            elif op == "F" :
                W += weight
            
            if W <= 0 :
                alive = False