Revizia anterioară Revizia următoare
Fişierul intrare/ieşire: | stv.in, stv.out | Sursă | FMI No Stress 10 |
Autor | Marius Dumitran | Adăugată de | |
Timp execuţie pe test | 0.05 sec | Limită de memorie | 65536 kbytes |
Scorul tău | N/A | Dificultate | N/A |
Vezi solutiile trimise | Statistici
Stv
Balaurul Arhirel a început sa fie pasionat de alegeri. El a realizat ca alegerile sunt foarte importante şi şi-a propus sa voteze la toate alegerile ce vor urma, mai ales cele de saptamana viitoare.
Lui Arhirel nu-i place deloc sistemul de alegeri dintr-un singur tur cu mai multi participanti.
Arhirel a descoperit un oraş cu 100 de votanţi unde existau 3 candidaţi “Geniul Viaductelor şi al Felinarelor” numit şi GVF, Nicu şi Gicu. Nicu şi Gicu şi au principii similare şi este de aşteptat ca votantii lui Nicu să-l prefere pe Gicu şi a lui Gicu pe Nicu în faţa celui de-al treilea candidat.
Totuşi rezultatul alegerilor în oraşul nostru a fost următorul:
table (a).|GVF: 35 | Nicu: 34 | Gicu: 31 |
prin urmare GVF a fost declarat câştigător, cu toate că probabil 65% din votanţi ar fi votat cu Nicu în turul 2.
După perioade lungi de contemplare Arhirel a ajuns la concluzia ca ar fi super dacă s-ar putea implementa sistemul :”Single Transferable Vote” .
Sistemul permite ordonarea candidaţilor după preferinţă:
În acest sistem candidaţii sunt eliminaţi unu cate unu pana ramane unu singur. La fiecare pas este eliminat candidatul care este favorit pe cele mai puţine liste.
Exemplu: dacă listele a 30 din cei care au votat Nicu arătau
Gicu 1, Nicu 2 (ei au decis sa nu pună GVF pe lista pe nici o poziţie)
Şi lista unuia dintre candidaţi arată Gicu 1, GVF 2, Nicu 3
La primul pas este eliminat Gicu care este preferat doar de 31 de votanţi. După aceea preferinţele devin:
Nicu: 34 + 30 = 64
GVF: 35 + 1 = 36
La pasul 2 e eliminat GVF şi castigator este Nicu sustinut practic de 64% din populatie la barajul cu GVF.
Totuşi înainte de a populariza şi mai mult sistemul Arhirel s-a decis sa-l testeze, cum Arhirel nu se pricepe prea bine sa centralizeze zeci de mii de voturi va cere ajutorul sa găsiţi ordinea candidatilor în nişte alegeri:
Input:
n - numărul de alegători
m - numărul de candidaţi (candidaţii vor avea numere de la 1 la m)
N linii de forma nr_i v_i_1, v_i_2, …., v_i_nr_i > numărul de candidaţi de pe lista alegătorului i, şi ordinea acestora pe lista.
Output:
O permutare reprezentand ordinea candidatilor în alegeri.
De discutat dacă datele le vrem citite normal sau generate după un sistem …
La fel şi discutii cu m şi n.
Nu scriu soluţii ca să le discutam...
Date de intrare
Datele de intrare se citesc din fisierul stv.in:
- pe prima linie: un numar natural, a
- pe a doua linie: un numar natural, b
Date de iesire
Datele de iesire se tiparesc in fisierul stv.out
- pe prima linie: cel mai mare divizor comun pentru a si b. Daca a si b sunt numere prime intre ele, atunci se va tipari 0.
Restrictii
- Rezultatul nu va depasi niciodata valoarea 30000
Exemplu
stv.in | stv.out |
---|---|
8 12 | 4 |