InternationalOlympiadinInformatics2014 13-20thJuly2014 Taipei,Taiwan wall Day-1tasks Language:es-CU Wall Jian-Jiaestaconstruyendounaparedapilandoladrillosdelmismotamaño.Estaparedconsistede columnasdeladrillos,lascualesestannumeradasdesde0hasta deizquierdaaderecha.Las columnaspuedentenerdiferentesalturas.Laalturadeunacolumnaeselnumerodeladrillosqueesta tiene. Jian-Jiaconstruyelaparedcomosigue.Inicialmentenohayladrillosenningunacolumna.Entonces, Jian-Jiavaatravesde fasesdeadicionaroeliminarladrillos.Elprocesodeconstruccionse completacuandolas faseshayanfinalizado.EncadafaseaJian-Jialeesdadounrangode columnasconsecutivasdeladrillosyunaaltura ,yelhaceelsiguienteprocedimiento: Enunafasedeadicionarladrillos,Jian-Jiaagregaladrillosaaquellascolumnasenelrango dadoquetienenmenosde ladrillos,detalmaneraqueestasquedenexactamentecon ladrillos.Jian-Jianohacenadaenlascolumnasquetienen omásladrillos. Enunafasedeeliminarladrillos,Jian-Jiaquitaladrillosdeaquellascolumnasenelrangodado quetenganmásde ladrillos,detalmaneraquequedenconexactamente ladrillos.Jian-Jiano hacenadaconlascolumnasquetienen ladrillosomenos. Tutareaesdeterminarlaformafinaldelapared. Ejemplo Nosotrosasumimosquehay10columnasdeladrillosy6paredesenlasfasesdeconstruccion.Todos losrangosenlasiguientetablasoninclusivos.Losdiagramasdelapareddespuesdecadafaseson mostradosdebajo. fase 0 1 2 3 4 5 tipo adicionar eliminar eliminar adicionar adicionar eliminar rango columnas1a8 columnas4a9 columnas3a6 columnas0a5 columna2 columnas6a7 altura 4 1 5 3 5 0 Yaquetodaslascolumnasestaninicialmentevacias,despuesdelafase0cadaunadelascolumnas dela1ala8quedarancon4ladrillos.Lascolumnas0y9permanecenvacias.Enlafase1,los ladrillossoneliminadosdesdelascolumnasdela4ala8hastaquecadaunadeellastenga1ladrillo,y lacolumna9permanecevacia.Lascolumnasdela0ala3,lascualesestanfueradelrangodado, permanecensincambiar.Lafase2nohacecambiosdesdelascolumnas3ala6puesnotienenmas de5ladrillos.Despuesdelafase3elnumerodeladrillosenlascolumnas0,4,y5seincrementana3. Hay5ladrillosenlacolumna2despuesdelafase4.Enlafase5seeliminantodoslosladrillosdela 1/3 columnas6y7. Tarea Dadaladescripciondelas fases,calculeelnumerodeladrillosencadacolumnadespuesquetodas lasfasesfinalicen.UstednecesitaimplementarlafuncionbuildWall. buildWall(n,k,op,left,right,height,finalHeight) n:elnumerodecolumnasdelapared. k:elnumerodefases. op:arreglodetamaño ;op[i]eseltipodelafase :1paraunafasedeadicionary2 paraunafasedeeliminar,para . leftyright:arreglosdetamaño ;elnumerodecolumnasenlafase quecomienza conlacolumnaleft[i]yfinalizaconlacolumnaright[i](incluyendoambos extremosleft[i]yright[i]),para .Ustedsiempretendraleft[i] right[i]. height:arreglodetamaño ;height[i]eselparametrodelaalturadelafase ,para . finalHeight:arreglodetamaño ;usteddeberetornarsusresultadosubicandoel 2/3 numerofinaldeladrillosdelacolumna enfinalHeight[i],para . Subtaeas Paratodaslassubtareaselparametrodealturaentodaslasfasessonenterosnonegativosmenoreso igualesa . subtarea puntos notas 1 8 sinlímitesadicionales 2 24 3 29 todaslasfasesdondeseagrega vanprimero sinlímitesadicionales 4 39 sinlímitesadicionales Detallesdeimplementacion Ustedtienequeenviarexactamenteunarchivo,llamadowall.c,wall.cpp,owall.pas.Este archivoimplementaelsubprogramadescritoantesusandolossiguientesprototipos.Ustedtambién necesitaráincluirunarchivodecabecerawall.hparalosprogramasescritosenC/C++. programasenC/C++ voidbuildWall(intn,intk,intop[],intleft[],intright[], intheight[],intfinalHeight[]); programasenPascal procedurebuildWall(n,k:longint;op,left,right,height: arrayoflongint;varfinalHeight:arrayoflongint); Ejemplodecalificador Elejemplodegraderleeralaentradaconelsiguientefomato: line1:n,k. line ( ):op[i],left[i],right[i],height[i]. 3/3