Mini Tetris - International Olympiad in Informatics
Transcripción
Mini Tetris - International Olympiad in Informatics
InternationalOlympiadinInformatics2016 12-19thAugust2016 Kazan,Russia day0_2 tetris Country:api-COL MiniTetris Comousteddebesaber,elpopularjuegodecomputador“Tetris”fueinventadoporel programadorrusoAlexeyPajitnov.Enesteproblemaustednecesitaimprimirun programaquejuegueunaversiónsimplificadadeestejuego. Elcampodejuegoesunrectángulovertical,llamadoel“pozo”.Aparecenfiguras aleatoriasenlapartesuperiordelpozo,eljugadorelijelaposiciónhorizontalyla rotacióndelafigura,despuéslafiguracaeenelpozo.Elobjetivodeljuegoescrear unalíneahorizontalllenasininterrupciones.Cuandosecreaunalíneaasí,desaparece, ycaentodoslosbloquesencimadelalíneaborradacaen. Enestamodificacióndeljuego,eltamañodelpozoes 3 × 4 unidades,yúnicamente haytrestiposdefiguras: Tipo Figura 1 2 3 Ustedpierdesienalgúnpuntodeljeugohaycincolíneasnovacíasenelpozo.Usted ganasiustednoperdiódespuésquehancaído n figuras. Ustednecesitaescribirunprogramaquejuegueeljuegoantesdescritoygane independientementedequefigurasaparezcan. Detallesdeimplementación Usteddebeimplementarcuatrofunciones(métodos): vo idinit(intn).Estafunciónsellamaantesdecualquierografunción. vo idne w_figure (intfigure _type ).Estafunciónsellamacuandoapareceuna nuevafigura.figure _type eselnúmerode 1 a 3 ,indicandoeltipodefigurade latablaantesdada. intge tPo sitio n().Estafuncióndebedevolverelnúmerode(0\)to 2 ,laposición 1/3 delbloquemásalaizquierdadelaúltimafigura. intge tRo ta tio n().Estafuncióndebedevolverunnúmerode 0 a 3 ,elnúmero derotaciónensentidoantihorariodelafigura. Lasfuncionesge tPo sitio nyge tRo ta tio nseránllamadasúnicamentedespuésde ne w_figure . Porfavormirelosarchivosmodelodeimplementaciónproporcionadospordetallesen sulenguajedeprogramación. Ejemplo Elcalificadorhacelassiguientesllamadasdefunciones: init(3).Habrántresfiguras. ne w_figure (1).Unafiguradeltipo 1 caedelapartesupeiordelpozo. ge tPo sitio n()devuelve 0 .Estoquieredecirqueeljugadorquiereponerlafigura enlacolumnamásalaizquierda; ge tRo ta tio n()devuelve 1 (o 3 ).Estoquieredecirqueeljugadorquiererotarla figuraverticalmente. Despuésquelafigurahacaído,elpozosevecomoesto. ne w_figure (2). ge tPo sitio n()devuelve 1 . ge tRo ta tio n()devuelve 1 . Despuésquelafigurahacaído,laprimeralíneaestállena,porlotanto desapareceysevecomoesto. ne w_figure (1). ge tPo sitio n()devuelve 1 . ge tRo ta tio n()devuelve 0 (o 2) . Despuésquelafigurahacaído,lasegundalíneaestállena,porlotantoelpozo sevecomoesto. 2/3 Subtareas Entodaslassubtareas n ≤ 1000 . 1. (7puntos)Todaslasfigurassondeltipo 1 , 2. (13puntos)Todaslasfigurassondeltipo 2 , 3. (21puntos)Todaslasfigurassondeltipo 3 , 4. (53puntos)Lasfiguraspuedenserdediferentestipos. CalificadorEjemplo Elcalificadorejemploleelaentradaenelsiguienteformato: línea1:Unentero n . línea2: n enteros:tiposdefiguras. NotasdelLenguaje Porfavor,uselosarchivosmodelosproporcionadosparadetallesdeimplementación ensulenguajedeprogramación. 3/3