핑크 레모네이드 1리터에서 시작해 정해진 순서로 한 번씩만 거래하며 얻을 수 있는 블루 레모네이드의 최대량을 구하되 10리터로 제한한다.
보통6동적 계획법해시맵그리디아직 제출이 없습니다시간 제한2초메모리 제한512 MB점심시간이 시작됐다. 어머니가 분홍 레모네이드 1리터를 챙겨 주셨지만, 나는 분홍 레모네이드를 좋아하지 않는다. 내가 마시고 싶은 것은 파란 레모네이드다. 다행히 같은 반 친구들이 교환에 응해 준다.
친구는 저마다 한 종류의 레모네이드를 사실상 무한히 가지고 있고, 자기가 원하는 레모네이드를 주면 정해진 교환 비율에 따라 원하는 양만큼 내준다. 친구들은 교실에 한 줄로 앉아 있고, 나는 줄을 따라 걸으면서 각 친구를 한 번씩만 지나간다. 뒤로 돌아갈 수는 없다. 즉 교환은 앉은 순서대로만 할 수 있고, 한 친구와는 많아야 한 번 교환한다. 교환하지 않고 그냥 지나쳐도 되고, 지금 가진 레모네이드 중 일부만 교환해도 된다.
마지막에 가지고 있는 파란 레모네이드의 양을 최대로 만들어야 한다. 10리터보다 많이 얻더라도 그보다 많은 양은 필요 없어서 넘치는 만큼 버리므로, 답은 10리터를 넘지 않는다.
첫째 줄에 자신을 제외한 교실 친구의 수 N이 주어진다. (0≤N≤105)
다음 N개 줄에는 앉은 순서대로 문자열 O, W와 실수 R가 공백으로 구분되어 주어진다. (0.5<R<2) O는 그 친구가 내주는 레모네이드의 이름, W는 그 친구가 원하는 레모네이드의 이름, R는 교환 비율이다. 그 친구에게 레모네이드 W를 1리터 줄 때마다 레모네이드 O를 R리터 받는다.
모든 문자열은 알파벳과 숫자로 이루어지며 길이는 10 이하이다. 처음에 가지고 있는 레모네이드의 이름은 pink이고, 얻으려는 레모네이드의 이름은 blue이다.
얻을 수 있는 파란 레모네이드의 최대 양 M을 리터 단위로 한 줄에 출력한다. 10리터보다 많이 얻을 수 있으면 M은 10이다. M은 소수점 아래 일곱째 자리에서 반올림하여 소수점 아래 여섯째 자리까지, 즉 소수점 아래 자리를 정확히 여섯 개 출력한다.