InternationalOlympiadinInformatics2015 26thJuly-2ndAugust2015 Almaty,Kazakhstan sorting Day2 Language:es-DOM Ordenamiento Aizhantieneunasecuenciade enteros .Lasecuenciaestácompuesta denúmerosdistintosde a .Ellaestátratandodeordenarestasecuenciaenmodoascendente, pormediodelintercambio(swapping)deelementos.SuamigoErmektambiénvaaintercambiarel ordendealgunosparesdeelementos—nonecesariamentedeunamaneraútil. ErmekyAizhanvanamodificarlasecuenciaenunaseriederondas.Encadaronda,Ermekinicia haciendounintercambioyluegoAizhanefectúaunsegundointercambio.Deunaformamásprecisa, lapersonaefectuandounintercambioescogedosíndicesválidoseintercambialoselementosubicados enesosíndices.Tomaencuentaquelosdosíndicesnotienenqueserdistintos.Sisoniguales,la personadeturnointercambiaunelementoconsímismo,locualnocambiaelordendelasecuencia. AizhansabequeaErmeknoleimportaordenarlasecuencia .Ellatambiénsabeexactamentelos índicesqueErmekescogerá.Ermekseproponetomarparteen rondasdeintercambios. Enumeraremosestasrondasde a .Paracada entre y inclusive,Ermekescogerá losíndices y enlaronda . Aizhanquiereordenarlasecuencia .Antesdecadaronda,siAizhanvequelasecuenciayaestá ordenadaenmodoascendente,ellaterminaríatodoelprocesoinmediatamente.Dadalasecuencia original ylosíndicesqueErmekescogerá,tutareaesencontrarunasecuenciadeintercambiosque Aizhanpuedautilizarparaordenarlasecuencia .Enadición,enalgunassub-tareasteserárequerido encontrarunasecuenciadeintercambiosquesealamáscortaposible(sihaymásdeunarespuesta óptima,puedesreportarcualquieradeellas).Puedesasumirqueesposibleordenarlasecuencia en rondasomenos. TomaencuentaquesiAizhanvequelasecuencia quedaordenadaluegodeunintercambio realizadoporErmek,ellapuedeelegirintercambiardosíndicesiguales( y ,porejemplo).Como resultado,lasecuencia tambiénquedaríaordenadaalculminarlarondacompleta,porloqueAizhan alcanzasuobjetivo.Tambiéntomanotaquesilasecuenciaoriginal vieneyaordenada,elmínimo númeroderondasnecesariasparaordenarlaes . Ejemplo1 Supónque: Lasecuenciainiciales . Ermekestádispuestoaefectuar intercambios. Lassecuencias y quedescribenlosíndicesqueErmekescogeráson y .Enotraspalabras,losparesdeíndicesqueErmekplaneaescogerson , , , , ,y . Enestaconfiguración,Aizhanpuedetransformarlasecuencia alorden Tambiénpuedehacerloescogiendolosíndices , ,yporúltimo entresrondas. . 1/3 LatabladebajomuestracomoErmekyAizhanmodificanlasecuencia. Ronda Jugador Pardeíndicesintercambiados Secuencia inicio Ermek Aizhan Ermek Aizhan Ermek Aizhan Ejemplo2 Supónque: Lasecuenciainiciales . Ermekestádispuestoaefectuar intercambios. LosparesdeíndicesqueErmekplaneaescogerson , , , ,y . Enestaconfiguración,Aizhanpuedeordenarlasecuencia entresrondas.Estoseconsigue eligiendolosparesdeíndices , ,yfinalmente .Lasiguientetablamuestracómo ErmekyAizhanmodificanlasecuencia. Ronda Jugador Pardeíndicesintercambiados Secuencia inicio Ermek Aizhan Ermek Aizhan Ermek Aizhan Tarea Tedanlasecuencia ,elnúmero ,ylassecuenciasdeíndices y .Encuentraunasecuenciade intercambiosqueAizhanpuedautilizarparaordenarlasecuencia .Enlassub-tareas y ,la secuenciadeintercambiosqueencuentrestienequeserlamáscortaposible. NecesitasimplementarlafunciónfindSwapPairs: findSwapPairs(N,S,M,X,Y,P,Q) —Estafunciónserállamadaporelgrader exactamenteunavez. N:lalongituddelasecuencia . 2/3 S:unarreglodeenterosconlasecuenciainicial . M:elnúmerodeintercambiosqueErmekplaneaefectuar. X,Y:arreglosdeenterosdelongitud .Para planeaintercambiarlosnúmerosenlosíndices ,enlaronda Ermek y . P,Q:arreglosdeenteros.Utilizaestosarreglosparareportarunaposiblesecuenciade intercambiosqueAizhanpuederealizarparaordenarlasecuencia .Entiéndasepor la longituddelasecuenciadeintercambiosquetuprogramahaencontrado.Paracada entre y inclusive,losíndicesqueAizhandeberíaescogerenlaronda debenser almacenadosdentrode y .PuedesasumirquelosarreglosPyQsondetamaño cadauno. Estafuncióndeberetornarelvalorde (definidoarriba). Sub-tareas subtarea restricciones adicionalesaX,Y paratodo puntos 1 8 2 12 3 16 4 5 6 18 20 26 requerimientos paraR paratodo para todo ninguna ninguna ninguna Puedesasumirqueexisteunasoluciónquerequiera mínimoposible mínimoposible rondasomenos. GraderdeEjemplo Elgraderdeejemploleelaentradadelarchivosorting.inenelsiguienteformato: línea1:N línea2:S[0]…S[N-1] línea3:M líneas4,…,M+3:X[i]Y[i] Elgraderdeejemploimprimelosiguiente: línea1:elvalorderetornodefindSwapPairs. línea2+ ,para :P[i]Q[i] 3/3