Ordenamiento

Anuncio
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
Descargar