Antiga Roma (2) P79161


Statement
 

pdf   zip

Considereu una civilització com la romana, tradicional i jerarquitzada. Hi ha nn dones nobles solteres (enumerades entre 1 i nn) i mm homes nobles solters (enumerats entre 1 i mm) en edat de casar-se. L’emperador ha calculat, per a cada parell (i,j)(i, j), el benefici MijM_{ij} que suposaria per a Roma que la dona ii-èsima es casés amb l’home jj-èsim.

En aquest problema, l’ordre relatiu tant entre les dones com entre els homes no és arbitrari: la dona 1 té un estatus superior a la dona 2, la qual té un estatus superior a la dona 3, etc, i similarment entre els homes. La tradició impedeix formar dos matrimonis (i1,j1)(i_1, j_1) i (i2,j2)(i_2, j_2) tals que i1<i2i_1 < i_2 però j1>j2j_1 > j_2, perquè a la dona i1i_1, que és més important que la dona i2i_2, li tocaria un marit de menys categoria (i a l’inrevés).

Donada MM, podeu fer els matrimonis que calgui per maximitzar el benefici per a Roma?

Entrada

L’entrada consisteix en diversos casos, cadascun amb nn i mm, seguides de la matriu MM: nn files amb mm naturals cadascuna. Suposeu que nn i mm es troben entre 1 i 1000, i que tots els MijM_{ij} es troben entre 1 i 10610^6.

Sortida

Per a cada cas, escriviu el màxim benefici possible, seguit dels nn matrimonis formats: per a cada dona entre 1 i nn, escriviu el número del seu marit, o un zero si és millor deixar-la soltera. Amb els jocs de proves donats, la solució serà única. Escriviu una línia amb 10 guions al final de cada cas.

Observació

La solució esperada té cost Θ(n⋅m)\Theta(n \cdot m) en espai i en temps.

Public test cases
  • Input

    2 2
    23 42
    30 37
    
    3 3
    90 10 20
    40 30 70
    10 80 10
    
    4 5
    1 3 7 8 9
    1 3 1 7 8
    1 3 1 1 7
    2 1 1 1 1
    
    3 4
    3 2 10 2
    2 4 3 2
    8 6 5 7
    

    Output

    benefici: 60
    1
    2
    ----------
    benefici: 170
    1
    0
    2
    ----------
    benefici: 21
    3
    4
    5
    0
    ----------
    benefici: 17
    3
    0
    4
    ----------
    
  • Information
    Author
    Salvador Roura
    Language
    Catalan
    Official solutions
    C++
    User solutions
    C++