# Nemes Tihamér OITV 2014
# Harmadik forduló II. korcsoport
# 2. feladat: Párosítás (22 pont)
# Két azonos létszámú csapat egyéni küzdelmet vív egymással, a te csapatod minden tagja az
# ellenfél egy másik tagjával mérkőzik párosításban. Két játékos közül mindig a nagyobb tudású
# győz. Ismerjük mindkét csapat tagjainak tudását.
# Készíts programot, amely megad egy olyan párosítást, amely esetén a csapatod a lehető
# legtöbbször győz!
# A standard bemenet első sora a csapattagok N számát (1≤N≤10000) tartalmazza. Mindkét csapat
# tagjait az 1,…,N számokkal azonosítjuk. A második sor pontosan N egész számot tartalmaz
# egy-egy szóközzel elválasztva, az i-edik szám a csapatod # i-edik tagjának Ai erőssége
# (1≤Ai≤100000). A harmadik sor is pontosan N egész számot tartalmaz egy-egy szóközzel
# elválasztva, az i-edik szám az ellenfél i-edik tagjának Bi erőssége (1≤Bi≤100000).
# A standard kimenet első sorába az elérhető győzelmek maximális számát kell írni! A második
# sor egy olyan párosítást adjon meg, amely maximális számú győzelmet eredményez csapatodnak!
# A sor pontosan N különböző egész számot tartalmazzon egy-egy szóközzel elválasztva, az i-edik
# szám az ellenfél csapatából annak a versenyzőnek a sorszáma legyen, aki a csapatod i-edik
# tagjával mérkőzik. Több megoldás esetén bármelyik megadható.
# Példa:
# bemenet	                kimenet
# 6				5
# 1 9 2 3 6 4			6 5 1 2 4 3
# 1 2 3 4 5 6


#MOHÓ STRATÉGIA

#Párosítási feladat: Adott két csapat (saját és ellenfél) a csapattagok erősségével.
#Párosítsuk úgy a csapatunk tagjait az ellenféllel, hogy a lehető legtöbb győzelem jöjjön össze!

#Adatbeolvasás a standard bemenetről...
tagszam=int(input('Csapattagok száma:'))
#Csapatnál és ellenfélnél is a sorszámot és az erősséget tároljuk együtt: (sorszám, erősség)
csapat=[(i,int(ero)) for i,ero in enumerate(input('Erősség:').strip().split(),1)]
ellenf=[(i,int(ero)) for i,ero in enumerate(input('Erősség:').strip().split(),1)]

print('Rendezetlenül:\n',csapat,'\n',ellenf)

#rendezés erősség szerint növekvő sorrendbe
csapat=sorted(csapat,key=lambda x:x[1])
ellenf=sorted(ellenf,key=lambda x:x[1])

print('Erősség szerint rendezetten:\n',csapat,'\n',ellenf)

parok=[0]*tagszam
db=0    #győzelmek száma	 

while len(csapat)>0:
    if csapat[0][1]>ellenf[0][1]: 	#mohó választás
        parok[csapat[0][0]-1]=ellenf[0][0]
        ellenf.pop(0)
        db+=1
    else:
        #nincs olyan ellenfél, akit le tudna győzni...
        parok[csapat[0][0]-1]=ellenf[-1][0]
        ellenf.pop(-1)

    csapat.pop(0)

print('Maximális győzelmek száma: %d' %db)
print('Párosítás:\n',parok)


