주식 시뮬레이션
시간 제한1초메모리 제한1024 MB
회사별 매수, 매도와 그룹 단위 주가 변동을 차례로 처리하고, 메뉴 6과 7이 나올 때마다 보유 현금과 전량 매도 시 총 현금을 출력합니다.
문제
하이비는 오늘도 주식 시장에 돈을 투자했다가 돈을 잃고 말았다. 매일 돈을 잃기만 하는 하이비를 안타깝게 여긴 유틸은 주식 시뮬레이션 프로그램이 담긴 USB를 건네며 투자 연습을 해 보라고 권했다.
하이비는 집에 도착해 컴퓨터에 USB를 꽂았다. 프로그램을 실행하자 7가지 메뉴가 나타났다. 각 메뉴는 다음과 같다.
- 1 : 회사 의 주식을 주 산다. 현재 보유한 현금으로 주를 살 수 없다면 한 주도 사지 않는다.
- 2 : 회사 의 주식을 주 판다. 현재 보유한 회사 의 주식이 주일 때, 이라면 아무 일도 일어나지 않는다. 라면 주를 모두 판다.
- 3 : 회사 의 주가가 원 오른다. 이면 주가가 원 떨어진다.
- 4 : 번 그룹에 속한 회사들의 주가가 원 오른다. 이면 주가가 원 떨어진다.
- 5 : 번 그룹에 속한 회사들의 주가가 % 오른다. 이면 주가가 % 떨어진다.
- 6: 현재 하이비가 보유한 현금을 출력한다.
- 7: 현재 하이비가 보유한 주식을 전부 팔았을 때의 현금 총합을 출력한다.
프로그램 매뉴얼에는 다음 내용이 적혀 있다.
- 처음에 하이비가 보유한 주식은 없다.
- 회사 이름은 대소문자를 구별한다.
- 주식을 사거나 팔 때의 단위는 10원이다. 5번 메뉴의 경우 변동률에 따라 회사들의 주가를 반영한 뒤 일의 자리에서 버림한다.
- 모든 시점에 각 회사의 주가 는 ()임이 보장된다.
- 모든 시점에 하이비가 보유한 주식을 전부 팔았을 때의 현금 총합은 원을 넘지 않는다.
- 1번, 2번, 3번 메뉴 입력의 는 주식 시장에 상장한 회사임이 보장된다.
- 4번 또는 5번 메뉴 입력에서 번 그룹에 속한 회사가 하나 이상 존재한다.
- 6번 또는 7번 메뉴 입력은 최소 한 번 이상 주어진다.
하이비는 여러 데이터를 넣어 보며 주식 시뮬레이션을 해 보기 시작했다. 그런데 문제가 생겼다. 6번 또는 7번 메뉴를 고르면 현금이 출력되어야 하는데, 전부 ???로만 나오는 것이었다.
하이비는 유틸에게 전화해 프로그램에 문제가 있다고 말했다. 유틸은 입력한 데이터를 전부 알려 주면 6번 또는 7번 메뉴를 골랐을 때의 결과를 알려 주겠다고 했다. 하지만 유틸은 다른 프로그램을 만드느라 너무 바빠서, 이 일을 대신 처리해 줄 수 있겠냐고 부탁했다. 유틸을 도와주자!
입력
첫 번째 줄에 주식 시장에 상장한 회사의 개수 , 하이비가 보유하고 있는 현금 , 메뉴 입력의 개수 가 공백으로 구분되어 주어진다. (; ; )
두 번째 줄부터 개의 줄에 걸쳐 회사가 속한 그룹의 번호 , 회사 이름 , 시뮬레이션 시작 시점에서 회사 1주의 가격 가 공백으로 구분되어 주어진다. 회사 이름은 영어 대소문자로 구성된 길이 30 이하의 문자열이며, 같은 회사 이름이 두 번 이상 등장하지 않는다. (; ; 는 10의 배수)
그다음 줄부터 개의 줄에 걸쳐 메뉴 입력이 주어진다. (; ; ; ; 는 10의 배수)
입력에서 주어지는 모든 수는 정수이다.
출력
6번, 7번 메뉴 입력의 결과를 한 줄에 하나씩 출력한다.