package Ġme . pe ck b . a oc ._ 2 0 1 7 . calendar . day 0 4 Ċ Ċ import Ġjavax . inject . Inject Ċ Ċ import Ġme . pe ck b . a oc . generators . Input Generator . Input Generator Factory Ċ Ċ class ĠDay 0 4 Ġ@ Inject Ġconstructor ( private Ġval Ġgenerator Factory : ĠInput Generator Factory ) Ġ{ ĊĠ Ġfun Ġpart One ( filename : ĠString ) Ġ= Ġgenerator Factory . for File ( filename ). read Ġ{ Ġinput Ġ-> ĊĠĠĠ Ġ// Ġcount Ġup Ġthe Ġnumber Ġof Ġwords Ġin Ġthe Ġphrase , Ġand Ġcheck Ġif Ġany Ġhave Ġmore Ġthan Ġone Ġcount ĊĠĠĠ Ġinput . map Ġ{ Ġphrase Ġ-> Ġphrase . split (" Ġ"). groupBy Ġ{ Ġit Ġ}. any Ġ{ Ġit . value . size Ġ> Ġ 1 Ġ} Ġ} ĊĠĠĠĠĠ Ġ// Ġand Ġthen Ġcount Ġthe Ġones Ġwhich Ġdid Ġnot Ġhave Ġany Ġmultip les ĊĠĠĠĠĠ Ġ. count Ġ{ Ġ! it Ġ} ĊĠ Ġ} ĊĊĠ Ġfun Ġpart Two ( filename : ĠString ) Ġ= Ġgenerator Factory . for File ( filename ). read Ġ{ Ġinput Ġ-> ĊĠĠĠ Ġ// Ġcount Ġup Ġthe Ġnumber Ġof Ġwords Ġ( sorted Ġby Ġchar ) Ġin Ġthe Ġphrase , Ġand Ġcheck Ġif Ġany Ġhave Ġmore Ġthan Ġone Ġcount ĊĠĠĠ Ġinput . map Ġ{ Ġphrase Ġ-> Ġphrase . split (" Ġ"). groupBy Ġ{ Ġit . to Sorted Set () Ġ}. any Ġ{ Ġit . value . size Ġ> Ġ 1 Ġ} Ġ} ĊĠĠĠĠĠ Ġ// Ġand Ġthen Ġcount Ġthe Ġones Ġwhich Ġdid Ġnot Ġhave Ġany Ġmultip les ĊĠĠĠĠĠ Ġ. count Ġ{ Ġ! it Ġ} ĊĠ Ġ} Ċ } Ċ