Equips de programació balancejats solidàriament X71059


Statement
 

pdf   zip

html

Una companyia multinacional participa cada any en les competicions de programació CodeStrengths amb uns quants equips de programadors. Quan organitza els equips, sempre crea un primer equip amb els millors programadors de la companyia, després un segon equip amb els restants millors programadors de la companyia, i així successivament.

Aquest any, amb l’ànim de fer un gest en pro de la concòrdia i la solidaritat entre els pobles del món, la companyia ha decidit formar equips amb només programadors del seu staff que siguin Russos i Estadounidencs, de manera que, si pot ser, els equips estiguin formats per programadors d’ambdós grups i en quantitat balancejada.

De totes maneres, el primer criteri per a formar un equip continua sent el nivell de programació. Per exemple, el primer equip no pot tenir un programador que sigui pitjor que un altre que no estigui al primer equip.

Com a segon criteri, s’intentarà que l’equip a formar estigui tan balancejat com sigui possible. Per exemple, si els equips estan formats per quatre persones, es prefereix un equip amb dos Russos i dos Estadounidencs que no pas un equip amb tres Russos i un Estadounidenc, i això últim és preferible a un equip amb quatre Russos i cap Estadounidenc.

Com a últim criteri, els programadors s’escullen per nom en ordre lexicogràfic (ordre estandar de comparació entre strings).

Entrada

L’entrada té varis casos. La primera línia de cada cas té un natural positiu k, que és el nombre de membres de cada equip a formar. En una segona línia hi ha un natural positiu n1, que és el nombre de programadors Russos. Després venen n1 línies, cadascuna amb el nom d’un programador Rus i un natural positiu indicant el seu nivell de programació. Aquestes línies estan ordenades de major a menor per nivell de programació, i en ordre lexicogràfic per a programadors amb el mateix nivell. Després hi ha una nova línia amb un natural positiu n2, que és el nombre de programadors Estadounidencs. Després venen n2 línies amb la informació dels programadors Estadounidencs, seguint exactament el mateix format que per als programadors Russos.

Es garantitza que n1+n2 és múltiple de k, i que no hi ha repetició de noms. En particular, un nom d’una llista no apareix a l’altra llista.

Sortida

Per a cada cas, s’han d’escriure (n1+n2)/k línies. La primera contindrà la llista de noms del primer equip en ordre lexicogràfic. La segona contindrà la llista de noms del segon equip en ordre lexicogràfic. I així successivament. Després de la sortida de cada cas hi ha una línia en blanc.

Observació

Avaluació sobre 10 punts:

  • Solució lenta: 5 punts.
  • solució ràpida: 10 punts.

Entenem com a solució ràpida una que és correcta, de cost lineal (es permet cost (n1+n2)log(k) per a poder aplicar un sort als membres de cada equip) i capaç de superar els jocs de proves públics i privats. Entenem com a solució lenta una que no és ràpida, però és correcta i capaç de superar els jocs de proves públics.

Public test cases
  • Input

    2
    3
    Mikhail 7
    Elena 6
    Irina 3
    5
    Barbara 8
    Jennifer 7
    Karen 5
    James 2
    Nancy 1
    4
    2
    Elizaveta 4
    Vera 4
    10
    Betty 8
    Christopher 8
    Mary 6
    Michael 6
    John 4
    Barbara 3
    David 3
    Patricia 2
    Sarah 2
    Anthony 1
    5
    2
    Irina 5
    Natalia 3
    8
    David 7
    Barbara 6
    Nancy 5
    Matthew 4
    Sandra 4
    John 3
    James 2
    Richard 1
    5
    3
    Yevgeny 7
    Nikolai 5
    Danyl 4
    2
    Barbara 1
    Susan 1
    3
    4
    Yevgeny 7
    Victoria 6
    Konstantin 4
    Sergey 1
    5
    Anthony 8
    Sandra 7
    Susan 5
    William 2
    Linda 1
    1
    5
    Sofia 5
    Nikolai 4
    Adelina 2
    Alexander 2
    Mikhail 1
    8
    Richard 8
    Thomas 7
    Patricia 5
    William 5
    Charles 3
    Jennifer 2
    Mary 1
    Sarah 1
    4
    5
    Daria 5
    Xenia 5
    Alexey 4
    Denis 2
    Maksim/Maxim 1
    3
    Betty 6
    Lisa 6
    Barbara 5
    1
    6
    Roman 8
    Anastasia 6
    Irina 5
    Alexey 3
    Danyl 3
    Natalia 3
    2
    Anthony 7
    Sarah 7
    3
    3
    Victoria 6
    Danyl 3
    Mikhail 2
    6
    Betty 8
    Lisa 8
    Patricia 7
    Nancy 6
    Elizabeth 3
    William 3
    3
    2
    Nadezhda 7
    Sergey 5
    1
    William 4
    5
    1
    Artyom 4
    4
    Jessica 8
    Susan 6
    Barbara 5
    Sarah 3
    1
    10
    Maksim/Maxim 8
    Xenia 8
    Elena 7
    Elizaveta 7
    Svetlana 7
    Danyl 6
    Alexander 4
    Polina 4
    Nikita 3
    Roman 3
    1
    Lisa 4
    5
    5
    Elena 6
    Yevgeny 6
    Nadezhda 3
    Roman 3
    Irina 2
    5
    Elizabeth 8
    Nancy 8
    Charles 6
    Joseph 2
    Matthew 1
    3
    5
    Svetlana 8
    Artyom 7
    Sofia 6
    Ivan 3
    Sergey 3
    4
    Jessica 8
    William 7
    Jennifer 2
    Joseph 2
    2
    11
    Adelina 7
    Elena 6
    Nikolai 6
    Anastasia 5
    Sergey 5
    Svetlana 4
    Artyom 3
    Mikhail 3
    Yevgeny 2
    Danyl 1
    Ivan 1
    1
    John 7
    5
    2
    Nadezhda 5
    Alexander 1
    3
    Matthew 8
    Lisa 2
    Sarah 1
    4
    1
    Arina 7
    3
    Lisa 2
    Daniel 1
    Matthew 1
    4
    2
    Xenia 3
    Dmitry 1
    2
    Barbara 6
    John 4
    1
    4
    Konstantin 6
    Adelina 4
    Alexander 3
    Xenia 2
    2
    Charles 6
    Jessica 3
    3
    8
    Mikhail 5
    Nikolai 5
    Polina 5
    Konstantin 4
    Daria 3
    Elena 3
    Roman 3
    Ivan 2
    4
    Jennifer 8
    Joseph 5
    Lisa 5
    Sandra 2
    

    Output

    Barbara Mikhail
    Elena Jennifer
    Irina Karen
    James Nancy
    
    Betty Christopher Mary Michael
    Barbara Elizaveta John Vera
    Anthony David Patricia Sarah
    
    Barbara David Irina Matthew Nancy
    James John Natalia Richard Sandra
    
    Barbara Danyl Nikolai Susan Yevgeny
    
    Anthony Sandra Yevgeny
    Konstantin Susan Victoria
    Linda Sergey William
    
    Richard
    Thomas
    Patricia
    Sofia
    William
    Nikolai
    Charles
    Adelina
    Alexander
    Jennifer
    Mary
    Mikhail
    Sarah
    
    Betty Daria Lisa Xenia
    Alexey Barbara Denis Maksim/Maxim
    
    Roman
    Anthony
    Sarah
    Anastasia
    Irina
    Alexey
    Danyl
    Natalia
    
    Betty Lisa Patricia
    Danyl Nancy Victoria
    Elizabeth Mikhail William
    
    Nadezhda Sergey William
    
    Artyom Barbara Jessica Sarah Susan
    
    Maksim/Maxim
    Xenia
    Elena
    Elizaveta
    Svetlana
    Danyl
    Alexander
    Lisa
    Polina
    Nikita
    Roman
    
    Charles Elena Elizabeth Nancy Yevgeny
    Irina Joseph Matthew Nadezhda Roman
    
    Artyom Jessica Svetlana
    Ivan Sofia William
    Jennifer Joseph Sergey
    
    Adelina John
    Elena Nikolai
    Anastasia Sergey
    Artyom Svetlana
    Mikhail Yevgeny
    Danyl Ivan
    
    Alexander Lisa Matthew Nadezhda Sarah
    
    Arina Daniel Lisa Matthew
    
    Barbara Dmitry John Xenia
    
    Charles
    Konstantin
    Adelina
    Alexander
    Jessica
    Xenia
    
    Jennifer Joseph Mikhail
    Lisa Nikolai Polina
    Daria Elena Konstantin
    Ivan Roman Sandra
    
    
  • Information
    Author
    PRO1
    Language
    Catalan
    Other languages
    English Spanish
    Official solutions
    C++
    User solutions
    C++