Kubiska boxar | 프로그래밍의 벗 PivotOJ
PivotOJ

Kubiska boxar

시간 제한: 1000ms메모리 제한: 1024MB출처: Programmeringsolympiaden 2017 — finalBOJ 20888
이 문제는 본문 이미지 일부가 표시되지 않습니다. 텍스트만으로 풀이가 어려울 수 있습니다.

문제

Din syssling Paulo R älskar boxar. Just nu är du på väg att fira jul hos Paulo (traditionsenligt firar du jul en gång med varje del av din släkt, som just nu består av 72 olika familjer). Tyvärr har du precis insett att du glömt att köpa julklappar!

Eftersom Paulo älskar boxar, är detta precis vad du tänker köpa till honom. En box är kubisk med en viss sidlängd, och har en av tre färger -- röd (R), grön (G) eller blå (B). Du har skrivit ner en inköpslista med alla boxar du tänker köpa. Tyvärr säljs boxarna i tre olika butiker, där varje butik säljer boxar av en viss färg.

Din plan är nu att åka till alla tre butiker för att köpa de nödvändiga boxarna. För att spara plats i baggageutrymmet tänker du placera vissa av boxarna i varandra. Om du besöker butikerna i ordningen f1,f2,f3f_1, f_2, f_3, (t.ex. R, G, B) så får du placera boxar av färgen f3f_3 i boxar av färgen f2f_2, och boxar av färgen f2f_2 i boxar av färgen f1f_1. Ordningen R, G, B innebär alltså att Paulo kan placera blåa boxar i gröna boxar, och gröna boxar i röda boxar. Du får inte placera boxar av färgen f3f_3 i boxar av färgen f1f_1 -- det hade ju varit helt absurt. Dessutom kan en box bara placeras i en box som har en strikt större sidlängd.

[이미지 1]

Figure 1: En möjlig lösning till exempel 3. Till vänster en grön box är placerad i en röd box som är placerad i en blå box. Till höger en grön box placerad i en röd box.

Kan du avgöra i vilken ordning du ska besöka butikerna, för att minimera antalet ytterboxar (d.v.s. boxar som inte ligger inuti en annan box), om du placerar boxarna optimalt?

입력

Indatan börjar med talet NN, antalet boxar, där 1N10001\le N \le 1\,000. Därefter följer NN rader med sidlängd lil_i (1li100000001 \le l_i \le 10\,000\,000) och färg fif_i (R, G, eller B) för varje box.

출력

Du ska skriva ut två rader. Den första raden ska innehålla den ordning du besöker butikerna i, på formen f1 f2 f3f_1\text{ }f_2\text{ }f_3. Den andra raden ska bestå av ett heltal -- det minsta antalet ytterboxar du kan åstadkomma efter att du stoppat in boxarna i varandra.

Om flera ordningar ger samma minimala antal ytterboxar, kan du skriva ut vilken av dessa ordningar som helst.

예제

예제 1

입력
3
15 B
10 G
5 R
출력
BGR
1

예제 2

입력
4
100 B
10 R
10 R
5 G
출력
BRG
2

예제 3

입력
5
100 B
10 R
10 R
1 G
1 G
출력
BRG
2

예제 4

입력
9
1 R
1 G
1 B
4 R
5 G
6 B
4 R
5 G
6 B
출력
BGR
5
코드를 제출하려면 로그인하세요.