버스


답안 제출

Points: 1
시간 제한: 1.0s
메모리 제한: 256M

문제 유형

버스의 승객과 수입을 관리하는 bus 클래스를 작성하시오.

버스는 다음 정보를 가진다.

  • 최대 탑승 인원
  • 1인당 요금
  • 현재 탑승 인원
  • 누적 수입

처음 버스가 만들어졌을 때 현재 탑승 인원과 누적 수입은 모두 0이다.

승객이 버스에 탑승하면 현재 탑승 인원이 증가하고, 탑승한 인원 수만큼 요금을 받아 누적 수입이 증가한다.

단, 승객이 탑승했을 때 최대 탑승 인원을 초과하면 아무도 탑승하지 못한다.
이 경우 no space를 출력하고, 현재 탑승 인원과 누적 수입은 변하지 않는다.

승객이 버스에서 내리면 현재 탑승 인원이 감소한다.

단, 현재 탑승 인원보다 더 많은 승객이 내리려고 하면 아무도 내리지 못한다.
이 경우 too much를 출력하고, 현재 탑승 인원은 변하지 않는다.

주어지는 명령을 순서대로 처리하는 프로그램을 작성하시오.

입력 설명

첫째 줄에 명령의 개수 n, 버스의 최대 탑승 인원 s, 1인당 요금 f가 공백으로 구분되어 입력된다.

둘째 줄부터 n개의 줄에 걸쳐 명령이 주어진다.

명령은 다음 중 하나이다.

1 cnt

cnt명의 승객이 버스에 탑승한다.

2 cnt

cnt명의 승객이 버스에서 내린다.

3

지금까지의 누적 수입을 출력한다.

출력 설명

명령을 순서대로 처리하면서 출력이 필요한 경우에만 출력한다.

  • 정원을 초과하여 탑승하려는 경우 no space를 출력한다.
  • 현재 탑승 인원보다 더 많은 승객이 내리려고 하는 경우 too much를 출력한다.
  • 3번 명령이 주어지면 누적 수입을 출력한다.

제한

  • 1 <= n <= 100
  • 1 <= s <= 100
  • 1 <= f <= 10000
  • 1 <= cnt <= 100

예제 입력 1

5 10 1200
1 3
1 5
3
2 4
3

예제 출력 1

9600
9600

예제 입력 2

7 5 1000
1 3
1 4
2 5
2 2
1 4
3
3

예제 출력 2

no space
too much
7000
7000

rear

n, s, f = map(int, input().split())
b = bus(s, f)

for _ in range(n):
    l = list(map(int, input().split()))
    if l[0] == 1:
        b.getIn(l[1])
    elif l[0] == 2:
        b.getOut(l[1])
    else:
        print(b.getIncome())

코멘트

현재 작성된 코멘트가 없습니다.