Sunteți pe pagina 1din 2

Inspectoratul Școlar al Municipiului București

Centrul de pregatire pentru performanţă la informatică - 11 ianuarie 2014 CLASA a IX -a

Problema 2 – bazine 100 puncte


La ştrandul Junior din oraşul nostru s-au construit n bazine pentru înnot. Fiecare bazin a fost dotat cu
câte un robinet pentru umplerea acestuia cu apă. Între m perechi distincte de bazine, a fost instalată câte o
ţeavă prin care apa din cele două bazine din fiecare pereche să poată circula. Astfel, cele două bazine din
pereche pot fi umplute prin deschiderea unui singur robinet.
Administratorul bazei a numerotat bazinele cu numerele distincte de la 1 la n şi a notat în registrul lui
cele m perechi de numere (x1,y1),(x2,y2),….,(xm,ym) corespunzând perechilor de bazine între care a
fost instalată câte o ţeavă.
Pentru a umple toate bazinele cu apă, administratorul doreşte să deschidă un număr minim de robinete.

Cerinţă. Scrieţi un program care să citescă numerele naturale n şi m, şi cele 2*m numere naturale x1, y1,
x2, y2,…., xm, ym, cu semnificația din enunț, şi care să afişeze cel mai mic număr k de robinete pe
care trebuie să le deschidă administratorul astfel încât să fie umplute cu apă toate bazinele.

Date de intrare
Fişierul de intrare bazine.in conţine:

n m - pe prima linie, două numere naturale n şi m, separate printr-un spaţiu, reprezentând


numărul n de bazine şi numărul m de perechi de bazine între care au fost instalate ţevi;
x1 y1 - pe a doua linie, două numere naturale x1 şi y1, separate printr-un spaţiu, cu semnificaţia
x2 y2 că între bazinele numerotate cu x1 şi y1 a fost instalată o ţeavă;
... .........................
xm ym - pe a m-a linie, două numere naturale xm şi ym, separate printr-un spaţiu, cu semnificaţia că
între bazinele numerotate cu xm şi ym a fost instalată o ţeavă.

Date de ieşire
Fişierul de ieşire bazine.out va conţine pe prima linie numărul k determinat.

Restricţii şi precizări:
 10 ≤ n ≤ 100
 8 ≤ m ≤ 400
 nu există două perechi de numere (x, y), (x’, y’) astfel încât x=x’ şi y=y’ sau x=y’ şi y=x’
printre cele m perechi citite din fişier
 1 ≤ x1,x2,...,xm ≤ n
 1 ≤ y1,y2,...,ym ≤ n
 x1  y1, x2  y2,..., xm  ym
 fiecare bazin poate fi cuplat la unul sau mai multe bazine prin câte o ţeavă, sau la nici un bazin

Exemplu:
bazine.in bazine.out Explicaţie
10 8 4 Apa din bazinele 1, 6, 8 şi 10 comunică doar între acestea, fiind instalate ţevi.
1 6 Astfel pentru aceste patru bazine este necesar să se deschidă un singur robinet
pentru umplerea lor.
4 5
Apa din bazinele 4, 5 şi 9 comunică, deoarece între acestea sunt ţevi. Astfel
8 6 pentru aceste bazine este necesar să se deschidă un singur robinet.
3 7 Între bazinele 3 şi 7 între care există teavă, se deschide un singur robinet, cele
9 4 două bazine nefiind legate prin ţevi de celelalte bazine
1 8 Bazinul 2 nu este cuplat cu niciun alt bazin, fiind necesar să se deschidă
robinetul acestuia.
10 6
În total se deschid doar 4 robinete pentru a alimenta toate bazinele
1 10
Timp maxim de executare/test: 0,1 secunde.
Limite de memorie: total memorie disponibilă 2 Mb, din care pentru stivă maxim: 2 Mb
Dimensiunea maximă a sursei: 5 KB
Inspectoratul Școlar al Municipiului București
Centrul de pregatire pentru performanţă la informatică - 11 ianuarie 2014 CLASA a IX -a

autori: prof. Carmen Mincă, prof. Doina Druță

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