InternationalOlympiadinInformatics2015 26thJuly-2ndAugust2015 Almaty,Kazakhstan horses Day2 Language:en-PRT Horses Mansuradoracriarcavalos,talcomoosseusantigosancestraisfaziam.Eletemagoraamaior manadadecavalosdoCazaquistão.Noentanto,estenãofoisempreocaso.Há anosatrás, Mansureraapenasumdzhigit(cazaqueparaumhomemjovem)etinhaumúnicocavalo.Elesonhava ganharmuitodinheiroefinalmentetornar-seumbai(cazaqueparaumhomemmuitorico). Numeramososanosde a porordemcronológica(i.e.,oano éomaisrecente).A meteorologiadecadaanoinfluenciouocrescimentodamanada.Paracadaano ,Mansurrecorda-se deumcoeficientedecrescimento ,queéuminteiropositivo.Secomeçasseoano com cavalos,entãoterminariaoanocom cavalosnasuamanada. Oscavalossópodiamservendidosnofinaldecadaano.Paracadaano ,Mansurrecorda-setambém deuminteiropositivo :opreçopeloqualelepodiavenderumcavalonofinaldoano .Nofinalde cadaano,erapossívelvenderumnúmeroarbitráriodecavalos,cadaumaomesmopreço . Mansurquestiona-sequaléamaiorquantiadedinheiroqueelepoderiateragorasetivesseescolhido osmelhoresmomentosparavenderosseuscavalosduranteosNanos.Vocêtemahonradeserum convidadodoMansurnoseutoi(cazaqueparadiafestivo),eelepediu-lhepararesponderaesta pergunta. AmemóriadoMansurmelhoraaolongodanoite,eporissoelefazumasequênciade atualizações.Cadaatualizaçãoirámudarapenasumdosvalores ouumdosvalores .Depois decadaatualizaçãoelepergunta-lhenovamenteaquantiadedinheiroquepodiaterganhoaovender osseuscavalos.AsatualizaçõesdoMansursãocumulativas:cadaumadassuasrespostasdeveter emcontatodasasatualizaçõesanteriores.Notequeumúnico ou podeseratualizado múltiplasvezes. AsrespostasparaasquestõesdoMansurpodeserenormes.Paraevitartrabalharcomnúmeros grandes,sótemdereportarasrespostasmódulo . Exemplo Suponhaqueexistem anos,comaseguinteinformação: 0 1 2 X 2 1 3 Y 3 4 1 Paraestesvaloresiniciais,Mansurpodeganharomáximosevenderambososseuscavalosnofinal doano1.Todooprocessoiráparecer-secomoseguinte: Inicialmente,Mansurtem1cavalo. 1/3 Depoisdoano0eleterá cavalos. Depoisdoano1eleterá cavalos. Elepodeagoravenderessesdoiscavalos.Olucrototalserá Deseguida,suponhaqueexisteuma . atualização:mudarovalorde para . Depoisdestaatualização,teremos: 0 1 2 X 2 1 3 Y 3 2 1 Nestecaso,umadassoluçõesótimaévenderumcavalodepoisdoano0eentãotrêscavalosdepois doano2.Todooprocessoiráparecer-secomoseguinte: Inicialmente,Mansurtem1cavalo. Depoisdoano0eleterá cavalos. Elepodeagoravenderumdosseuscavalospor Depoisdoano1eleterá cavalo. Depoisdoano2eleterá cavalos. ,eficaraindacomumcavalo. Elepodeagoravenderessesdoiscavalospor . .Ototaldedinheiroserá Tarefa Sãodados , , eumalistadeatualizações.Antesdaprimeiraatualização,edepoisdecada atualização,calculeamáximaquantiadedinheiroqueMansurpodereceberpelosseuscavalos, módulo . init(N,X,Y)—Oavaliadoriráchamarestafunçãonoinícioeexatamenteumavez. N:onúmerodeanos. X:umvetor(array)detamanho .Para coeficientedecrescimentoparaoano . Y:umvetordetamanho finaldoano . .Para , , contémovalordo contémopreçodeumcavalono NotequeambososvetoresXeYespecificamosvaloresiniciaisdadosporMansur(antes dequalqueratualização). Depoisdeinitterminar,osvetoresXeYpermanecemválidos,epodemodificarosseus conteúdosseassimodesejar. AfunçãodevedevolveramáximaquantiadedinheiroqueMansurpodeconseguirpara estesvaloresiniciaisde e ,módulo . 2/3 updateX(pos,val) pos:uminteironointervalo val:onovovalorde . pos . AfunçãodevedevolveramáximaquantiadedinheiroqueoMansurpodeconseguir depoisdestaatualização,módulo . updateY(pos,val) pos:uminteironointervalo val:onovovalorde . pos . AfunçãodevedevolveramáximaquantiadedinheiroqueoMansurpodeconseguir depoisdestaatualização,módulo . Podeassumirquetodososvaloresiniciais,bemcomoosvaloresatualizadosde e estão entre e inclusive. Depoisdechamarinit,oavaliadoriráchamarupdateXeupdateYdiversasvezes.Onúmerototal dechamadasaupdateXeupdateYserá . Subtarefas subtarefa pontos 1 17 2 17 3 20 4 5 23 23 restriçõesadicionais , nenhuma e parainite updateXrespetivamente nenhuma nenhuma Avaliadorexemplo Oavaliadorexemplolêoinputapartirdeumficheirohorses.innoseguinteformato linha1:N linha2:X[0]…X[N-1] linha3:Y[0]…Y[N-1] linha4:M linhas5,…,M+4:trêsnúmerostypeposval(type=1paraupdateXetype=2para updateY). Oavaliadorexemploescreveovalorderetornodeinit,seguidopelosvaloresderetornodetodasas chamadasaupdateXeupdateY. 3/3