Sunteți pe pagina 1din 4

Proiectarea Algoritmilor Tema 2

Dat publicare: 26.04.2015


Deadline soft: 15.05.2015

1. Problema 1 - KimLandia
1.1 Enun
Dup o confruntare eroic, Kim a fost ales democratic preedintele unei republici prospere,
KimLandia. Natural, prima sa prioritate este s construiasc o reea de buncre, pentru a veni
n ntmpinarea unui atac al vecinilor imperialiti.
N buncre au fost deja construite. Kim trebuie s aleag ntre M posibile rute bidirecionale
pentru a le conecta. Un plan de conectare este alctuit dintr-un subset minim de astfel de
legturi, astfel nct din fiecare locaie s se poat ajunge n orice alt locaie. Costul unui plan
este dat de suma distanelor legturilor.
Deoarece rutele sunt vulnerabile la bombardamente aeriene, Kim v cere s estimai un plan de
cost minim. In plus, Kim v cere s calculai Q soluii de rezerva, pentru situaia n care una
dintre cele M legturi este sigur inclus in plan.

1.2 Date de intrare

Datele de intrare vor fi citite din fiierul kim.in.


Pe prima linie se afl 2 numere separate prin spaiu: N (numrul de buncre), M
(numrul de rute posibile), Q (numrul de soluii de rezerv).
Pe urmtoarele M linii se afl triplete de numere (nod1, nod2, dist12), ce descriu o
posibil legatur intre nodurile nod1 i nod2, cu distana dist12.
Pe urmtoarele Q linii se afl cte un numr Qi, reprezentnd indexul unei muchii care
trebuie inclus ntr-un plan de rezerv.

1.3 Date de ieire

Datele de ieire vor fi afiate in fiierul kim.out.


Pe prima linie se afl un numr reprezentnd costul celui mai bun plan, pentru situaia in
care pot fi folosite oricare dintre cele M rute.
Pe urmtoarele Q linii se afl un numr Ci reprezentnd costul minim al unui plan care
conine muchia Qi.

1.4 Precizri

1 <= N <= 200.000


N-1 <= M <= 200.000
1 <= Q <= 300.000

Distana asociat unei rute este o valoare intreag din intervalul [1, 1.000.000.000]

1.5 Exemplu
kim.in

kim.out

688
124
416
312
233
524
343
455
561
1
2
3
4
5
6
7
8

13
14
16
13
13
13
13
14
13

1.6 Limite de timp


Vor fi anunate in curnd.

2.

Problema 2 - Portal

2.1 Enun
tiind c reeaua de drumuri construit anterior poate fi compromis, Kim a decis s aplice
msuri de protecie suplimentare. Din fericire, n Kimlandia au fost inventate portaluri, o
tehnologie inovativ care permite crearea unei legturi unidirecionale ntre 2 buncre.
Un portal este alctuit din 2 componente care se instaleaz n buncrele origine i destinaie. El
permite teleportarea instantanee din origine la destinaie, dar doar dac acestea sunt suficient
de apropiate geografic.
tiind perechile de buncre n care pot fi instalate portaluri, Kim dorete s le amplaseze ntr-un
mod ct mai eficient, astfel inct numrul de buncre izolate s fie minim. Un buncr este izolat
dac n acesta nu se poate ajunge din nici un alt buncr.

2.2 Date de intrare


-

Datele de intrare vor fi citite din fiierul portal.in


Pe prima linie vor fi 2 numere N i M, separate prin spaiu, reprezentnd numrul de
buncre i portaluri disponibile, respectiv.
Pe urmtoarele M linii se vor gsi cte 2 numere, x i y, separate prin spaiu, cu
semnificaia c buncrele x i y sunt suficient de apropiate nct s se instaleze un
portal care s le conecteze.

2.3 Date de ieire


-

Rezultatele vor fi scrise n fiierul portal.out


Fiierul de ieire trebuie s conin o singur linie cu numrul minim de buncre izolate
obinute dup instalarea portalurilor.

2.4 Precizri
-

2 <= N <= 100000


1 <= M <= 100000

2.5 Exemplu
portal.in

portal.out

5
1
2
3
5
5

5
2
3
4
2
3

Mai jos este reprezentat un posibil mod de instalare a portalurilor. Se observ c nici un buncr
nu a rmas izolat.

1.6 Limite de timp


Vor fi anunate in curnd.

Format arhiv i testare


Temele vor testate automat pe vmchecker - acesta suport temele rezolvate in C/C++ i Java. Dac
dorii s realizai tema n alt limbaj trebuie s trimitei un e-mail lui Traian Rebedea
(traian.rebedea@cs.pub.ro) n care s i cerei explicit acest lucru.
Arhiva cu rezolvarea temei trebuie sa e format zip, cu extensia .zip i s conin n rdcina acesteia:
Fiierul/ierele surs
Fiierul Makele
Fiierul README
Fiierul pentru make trebuie denumit obligatoriu Makefile i trebuie s conin urmtoarele reguli:
build, care va compila sursele i va obine executabilele.
run-p1, care va rula executabilul pentru problema 1
run-p2, care va rula executabilul pentru problema 2
clean, care va terge executabilul generat
Atentie! Numele regulilor trebuie s fie exact cele de mai sus, n special cea de run. Absena sau
denumirea diferit a acestora va avea drept consecin obinerea a 0 puncte pe testele echivalente
problemei rezolvate de regula respectiv.

S-ar putea să vă placă și