package Ġcom . github . sh mv anh out en . ad vent of code . day 2 2 grid computing Ċ Ċ class ĠV iable Pair Finder ( private Ġval Ġstorage Cluster Builder : ĠStorage Cluster Builder Ġ= ĠStorage Cluster Builder ()) Ġ{ ĊĊĠĠĠ Ġfun Ġcount V iable Pairs From Raw Input ( raw Input : ĠString ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstorage Cluster Ġ= Ġstorage Cluster Builder . build Storage Cluster From Raw Input ( raw Input ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġstorage Cluster . grid . values ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. sum By Ġ{ Ġnode Ġ-> Ġstorage Cluster . grid . values . count Ġ{ Ġother Node Ġ-> Ġ Ġare Nodes Valid Pairs ( node , Ġother Node )} Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġare Nodes Valid Pairs ( node : ĠStorage Node , Ġother Node : ĠStorage Node ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( node Ġ== Ġother Node ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif ( node . used Ġ== Ġ 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( other Node . available Ġ>= Ġnode . used ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} Ċ }