Problem G
Grönsaksrekord
I den här uppgiften ska du skriva ett program som kan läsa in en fil med data om olika grönsaker som har odlats i olika länder och skriva ut en sorterad lista med rekordstorleken för varje grönsakstyp.
OBS! I den här labben måste du skapa en en extra klass som kan lagra poster med grönsaksdata, och som implementerar gränssnittet Comparable, så att du kan sortera arrayer med poster.
Den internationella jordbruksföreningen sammanställer varje år en lista över var de största grönsakerna av olika typer har producerats.
Listan är i första hand sorterad på grönsakstypen (alfabetiskt), och i andra hand på storlek (från störst till minst). Varje land får bara bidra med en grönsak av varje typ, så även om t.ex Sverige skulle producera de 17 största slanggurkorna ett visst år, så räknas bara den största, och nummer två på listan är den största grönsaken från de övriga länderna, och så vidare. Om två länder skulle tangera varandras rekord för en viss grönsak så ska de skrivas ut i alfabetisk ordning.
Dock är anmälan till tävlingen decentraliserad, och varje odlare kan anmäla hur många grönsaker de vill, så indata kan bestå av flera olika exempel på samma grönsak från samma land. Det är ditt programs uppgift att se till att bara den största grönsaken av varje typ tas med för varje land.
Indata
Indata består av en fil där varje rad motsvarar en specifik grönsak, med information om var den odlats, och hur stor den var, enligt följande mönster:
<Grönsakstyp (ett ord)> <Namn på landet (ett eller flera ord)> <Storlek (heltal)> <enhet (ett ord)>
Du kan anta att alla grönsaker av samma typ mäts i samma enhet.
Du kan anta att det är högst 1 000 000 rader i indatafilen
Utdata
En sorterad radbruten lista, med högst ett exemplar av varje grönsak från varje land. Varje rad följer samma mönster som ovan.
Sample Input 1 | Sample Output 1 |
---|---|
gurka Spanien 32 cm tomat Grekland 19 hg gurka Förenade Arabemiraten 31 cm tomat Grekland 21 hg |
gurka Spanien 32 cm gurka Förenade Arabemiraten 31 cm tomat Grekland 21 hg |
Sample Input 2 | Sample Output 2 |
---|---|
gurka Spanien 32 cm gurka Spanien 32 cm tomat Grekland 19 hg gurka Förenade Arabemiraten 31 cm tomat Grekland 21 hg tomat Grekland 13 hg gurka Förenade Arabemiraten 31 cm tomat Amerikas Förenade Stater 21 hg tomat Sverige 21 hg gurka Spanien 21 cm morot Japan 37 cm |
gurka Spanien 32 cm gurka Förenade Arabemiraten 31 cm morot Japan 37 cm tomat Amerikas Förenade Stater 21 hg tomat Grekland 21 hg tomat Sverige 21 hg |