package Ġabc Ċ Ċ import Ġutilities . debug Log Ċ import Ġjava . util .* Ċ Ċ fun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠ Ġval Ġsc Ġ= ĠScanner ( System .` in `) ĊĠĠĠ Ġval Ġn Ġ= Ġsc . nextInt () ĊĠĠĠ Ġval Ġa Ġ= Ġ( 0 Ġuntil Ġn ). map Ġ{ Ġsc . next (). toInt () Ġ} ĊĠĠĠ Ġval Ġq Ġ= Ġsc . nextInt () ĊĠĠĠ Ġval Ġbc Ġ= Ġ( 0 Ġuntil Ġq ). map Ġ{ Ġsc . next (). toInt () Ġto Ġsc . next (). toInt () Ġ} ĊĠĠĠ Ġprintln ( problem 1 7 1 d ( n , Ġa , Ġq , Ġbc )) Ċ } Ċ Ċ fun Ġproblem 1 7 1 d ( ĊĠĠĠ Ġn : ĠInt , ĊĠĠĠ Ġa : ĠList < Int >, ĊĠĠĠ Ġq : ĠInt , ĊĠĠĠ Ġbc : ĠList < Pair < Int , ĠInt >> Ċ ): ĠString Ġ{ ĊĠĠĠ Ġval Ġans Ġ= Ġmutable ListOf < Long >() ĊĠĠĠ Ġvar Ġsum Ġ= Ġ 0 L ĊĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġn ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsum Ġ+= Ġa [ i ] ĊĠĠĠ Ġ} ĊĠĠĠ Ġans . add ( sum ) ĊĠĠĠ Ġval Ġcounts Ġ= Ġmutable Map Of < Int , ĠInt >() ĊĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġn ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġai Ġ= Ġa [ i ] ĊĠĠĠĠĠĠĠ Ġif Ġ( counts [ ai ] Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcounts [ ai ] Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcounts [ ai ] Ġ= Ġcounts [ ai ] !!. plus ( 1 ) ĊĠĠĠ Ġ} ĊĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġq ) Ġ{ ĊĠĠĠĠĠĠ Ġval Ġ( b , Ġc ) Ġ= Ġbc [ i ] ĊĠĠĠĠĠĠ Ġif Ġ( counts [ b ] Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠ Ġans . add ( ans . last ()) ĊĠĠĠĠĠĠĠĠĠĠ Ġcontinue ĊĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠ Ġval Ġb C Ġ= Ġcounts [ b ] !! ĊĠĠĠĠĠĠ Ġval Ġc C Ġ= Ġcounts [ c ] ĊĠĠĠĠĠĠ Ġcounts [ c ] Ġ= Ġ( c C Ġ?: Ġ 0 ) Ġ+ Ġb C ĊĠĠĠĠĠĠ Ġcounts [ b ] Ġ= Ġ 0 ĊĠĠĠĠĠĠ Ġvar Ġs Ġ= Ġans . last () ĊĠĠĠĠĠĠ Ġs Ġ-= Ġb . to Long () Ġ* Ġb C ĊĠĠĠĠĠĠ Ġs Ġ+= Ġc . to Long () Ġ* Ġb C ĊĠĠĠĠĠĠ Ġans . add ( s ) ĊĠĠ Ġ} ĊĠĠĠ Ġreturn Ġans . drop ( 1 ). join ToString ("\ n ") Ċ }