Pentru a primi cu surle si tobe mutilarea invatamantului liceal de
informatica in Romania (care duce, va dati seama, la mutilarea inevitabila
a Olimpiadei de Informatica), propunem aceasta problema, in speranta ca se
va gasi cineva care sa subtieze si programa de pe la facultati.
PROBLEMA 19: Programa subtirica
DEADLINE: Luni, 24 mai 1999
TIMP DE IMPLEMENTARE: O ora
DOMENIU: Grafuri
PUNCTAJ: 40 dexteri
La Facultatea de ... si ... exista doua alternative pentru ca studentii sa
aiba timp sa asimileze cunostintele: (1) Marirea zilei la 30 de ore, si
(2) Subtierea programei scolare. Optand pentru varianta a doua, Liga
Studentilor introduce o platforma program care:
1) Stabileste care sunt materiile necesare pentru a putea studia o noua
materie. De exemplu, pentru a studia cursul "Management" este nevoie de
cursul "Teorie Economica" si de cursul "Marketing", asta pentru a da un
exemplu strans legat de profilul Facultatii de ... si ...
2) Stabileste care sunt materiile cu adevarat utile dintre toate cele
studiate in facultate. De exemplu, cursul de ... (nu dam nume, dar se poate
completa la intamplare cu sanse mari de a da un raspuns corect) nu este
util la absolut nimic.
3) Cere sa se elimine din programa materiile care nu sunt nici folositoare,
nici nu servesc (direct sau indirect) la invatarea unor materii
folositoare. Vezi exemplul.
4) Cere sa se indice care dintre materii nu pot fi predate in nici o
ordine. De exemplu, cursul "Mecanica" se bazeaza din greu pe cursul
"Ecuatii Diferentiale", dar cursul de "Ecuatii Diferentiale" isi preia
exemplele din "Mecanica". Cerc vicios, deci materiile nu pot fi predate in
nici o ordine fara a "baga pe gat" cunostinte nedemonstrate.
Numarul N de materii predate in facultate nu depaseste 100 (slava Domnului,
desi nici departe nu e), iar pentru comoditatea voastra materiile au fost
codificate prin numerele de la 1 la N.
DATE DE INTRARE: Fisierul PROGRAMA.IN contine pe prima linie numarul de
materii N, numarul de legaturi intre materii care exista, M, si numarul de
materii utile din facultate F (0<=F<=N). Pe urmatoarele M linii se gaseste
cate o pereche de numere X si Y, care inseamna ca materia X este necesara
pentru invatarea materiei Y. Pe ultima linie se gasesc F numere,
reprezentand codificarile materiilor utile.
DATE DE IESIRE:
Fisierul PROGRAMA.OUT contine doua linii mari si (probabil) late. Pe prima
se vor tipari in ordine crescatoare numerele materiilor complet inutile
(vezi definitia de la punctul 3). Pe linia a doua se vor tipari tot in
ordine crescatoare materiile care nu pot fi predate datorita dependentelor
ciclice.
EXEMPLU:
PROGRAMA.IN PROGRAMA.OUT
8 6 1 2 4 5 8
1 3 3 6
5 4
6 7
3 6
7 8
6 3
7
TIMP DE RULARE: 1 secunda/test.
COMPLEXITATE RECOMANDATA: Cred ca O(M+N), dar nu sunt 100% sigur.
|
|