Se consideră n
mărgele numerotate de la 1
la n
de culori și grad de strălucire diferite. Se generează toate posibilitățile de construire a unui colier de m
mărgele distincte, astfel încât mărgelele aflate pe poziții învecinate să fie de culori diferite. Un colier este cu atât mai prețios (valoros) cu cât suma gradelor de strălucire a mărgelelor este mai mare.
Cerință
Să se determine cel mai prețios minim lexicografic colier format.
Date de intrare
Fișierul de intrare colier.in
conține pe prima linie două numere naturale n
și m
, iar pe următoarele n
linii descrierea mărgelelor. Linia i+1
conține descrierea mărgelei i
sub forma: culoare grad_stralucire.
Date de ieșire
Fișierul de ieșire colier.out
va conține pe prima linie, separate prin spațiu, cele m
numere de ordine ale mărgelelor care formează colierul cel mai prețios.
Restricții și precizări
1 ≤ n ≤ 12
2 ≤ m < 10
- gradul de strălucire al mărgelelor este cuprins în intervalul
[1..100]
- culoarea mărgelelor este dată sub forma unui număr natural nenul
<20
- nu există mărgele identice
- colierul este circular – prima mărgea se învecinează cu ultima
Exemplu:
colier.in
7 4 1 2 3 2 2 1 2 3 1 3 2 2 3 1
colier.out
1 2 5 4
Explicație
Colierul format din mărgelele: 1,2,5,4
este colierul cel mai prețios minim lexicografic.
Gradul total de strălucire = 10
.
Cu același grad maxim de strălucire sunt de exemplu și colierele: 1 4 5 2
, 6 1 4 5
.