Aici sunt prezentate diferențele dintre versiunile selectate și versiunea curentă a paginii.
Ambele părți revizuirea anterioară Versiuni anterioare Urmatoarea versiune | Versiuni anterioare Urmatoarea versiune Ambele părți următoarea reviziune | ||
teme2018:tema-3 [2018/05/05 21:34] nicolae.cociorba |
teme2018:tema-3 [2018/05/09 15:51] radu_andrei.cioaca [Informaţii] |
||
---|---|---|---|
Linia 1: | Linia 1: | ||
====== Tema 3: Instalatia de craciun! ====== | ====== Tema 3: Instalatia de craciun! ====== | ||
+ | ==== Informaţii ==== | ||
+ | - Deadline hard, **20 mai ora 23:59** (termen limită - **nu se obţin puncte** pe soluţiile trimise mai târziu) | ||
+ | - Trimiterea temelor se face pe platforma [[https:// | ||
+ | - Checker-ul offline poate fi descărcat de la această [[https:// | ||
+ | - Puteţi cere ajutor oricând la această adresă [[sda-ab-tema3@googlegroups.com|email]] | ||
+ | ==== Descriere ==== | ||
Dezamagit de bradul sau de Craciun, Andrei decide ca anul acesta va avea cel mai frumos brad. El se hotaraste sa isi creeze o propria instalatie de lumini cu care isi va impresiona toti vecinii si prietenii din cartier. | Dezamagit de bradul sau de Craciun, Andrei decide ca anul acesta va avea cel mai frumos brad. El se hotaraste sa isi creeze o propria instalatie de lumini cu care isi va impresiona toti vecinii si prietenii din cartier. | ||
Linia 10: | Linia 16: | ||
Deoarece este abia luna Mai, Andrei vrea sa faca cat mai multe simulari pe calculator inainte sa se apuce efectiv de lucru deoarece nu vrea sa greseasca nimic in timpul instalarii ledurilor si are nevoie de ajutorul vostru. | Deoarece este abia luna Mai, Andrei vrea sa faca cat mai multe simulari pe calculator inainte sa se apuce efectiv de lucru deoarece nu vrea sa greseasca nimic in timpul instalarii ledurilor si are nevoie de ajutorul vostru. | ||
- | **Cerinte: | + | ==== Cerinţe ==== |
- Determinati diferenta maxima de intenistate intre doua leduri invecinate si precizati cate perechi de leduri au aceasta diferenta. | - Determinati diferenta maxima de intenistate intre doua leduri invecinate si precizati cate perechi de leduri au aceasta diferenta. | ||
- | - Determinati numarul minim de leduri ce trebuiesc scoase pentru a obtine o instalatie cu intensitatiile ledurilor in ordine descrescatoare . | + | - **BONUS : Determinati numarul minim de leduri ce trebuiesc scoase pentru a obtine o instalatie cu intensitatiile ledurilor in ordine descrescatoare .** |
- | - Cunoscand rezistentele disponibile si intensitatea scazuta de fiecare rezistenta. Precizati numarul minim de rezistente utilizate pentru a aduce toate ledurile la o intensitate egala cu Y. Daca nu se poate afisati -1. | + | - Cunoscand rezistentele disponibile si intensitatea scazuta de fiecare rezistenta. Precizati numarul minim (folosind o abordare Greedy) |
- | + | | |
- | **BONUS : Aflati cate moduri de organizare a ledurilor exista astfel incat sa nu existe doua leduri de aceeiasi culoare unul langa altul iar diferenta dintre intensitatile lor sa nu fie mai mare de K .** | + | |
**Precizari: | **Precizari: | ||
- | * Intensitatile luminoase ale ledurilor sunt reprezentate de numere intregi | + | * Intensitatile luminoase ale ledurilor sunt reprezentate de numere intregi. |
* Pentru fiecare led se cunosc : culoarea si intensitatea sa | * Pentru fiecare led se cunosc : culoarea si intensitatea sa | ||
* Culori: R , O , G , V , A | * Culori: R , O , G , V , A | ||
Linia 26: | Linia 31: | ||
* La cerinta 3 dispuneti un numar nelimitat de rezistente din fiecare tip!!! | * La cerinta 3 dispuneti un numar nelimitat de rezistente din fiecare tip!!! | ||
- | //**Date I/O**// | + | ==== Date I/O ==== |
+ | |||
+ | **Cerinte.in** | ||
+ | * prima linie conține 4 numere, 1 sau 0, | ||
+ | * pentru 1 cerința se va realiza, | ||
+ | |||
+ | **Exemplu: | ||
+ | 1 1 1 1 | ||
+ | | ||
**Leduri.in** | **Leduri.in** | ||
Linia 33: | Linia 46: | ||
N = numarul de leduri dintr-o configuratie | N = numarul de leduri dintr-o configuratie | ||
Y = intensitatea la care trebuie aduse ledurile (cerinta 3) | Y = intensitatea la care trebuie aduse ledurile (cerinta 3) | ||
- | K = diferenta de intensitate acceptata (bonus) | + | K = diferenta de intensitate acceptata (cerinta 4) |
**Exemplu: | **Exemplu: | ||
- | 5 3 5 | + | |
- | Led1 R 55 | + | |
- | Led2 O 23 | + | Led1 R 90 |
- | Led3 R 44 | + | Led2 V 100 |
- | Led4 V 22 | + | Led3 O 75 |
- | Led5 | + | Led4 R 80 |
+ | Led5 G 55 | ||
Linia 51: | Linia 66: | ||
3 | 3 | ||
- | R1 4 | + | R1 1 |
- | R2 8 | + | R2 5 |
R3 10 | R3 10 | ||
Linia 58: | Linia 73: | ||
**Rezultat.out** | **Rezultat.out** | ||
+ | 25 2 | ||
+ | 2 | ||
+ | 14 | ||
+ | 48 | ||
+ | | ||
In acest fisier se vor afla in ordine: | In acest fisier se vor afla in ordine: | ||
Pe prima linie: diferenta maxima si numarul de perechi care respecta aceasta diferenta | Pe prima linie: diferenta maxima si numarul de perechi care respecta aceasta diferenta | ||
Linia 63: | Linia 83: | ||
Pe a treia linie: numarul de rezistente utilizat | Pe a treia linie: numarul de rezistente utilizat | ||
+ | |||
+ | <note tip> | ||
+ | Executabilul obținut în urma compilării va avea numele **leduri** iar regula de rulare va fi: | ||
+ | ** | ||
+ | |||
+ | ./leduri Rezistente.in Leduri.in Cerinte.in Rezultate.out** | ||
+ | </ | ||
===== Reguli de trimitere ===== | ===== Reguli de trimitere ===== | ||
- | *puteţi încărca mai multe soluţii, se va lua în considerare soluţia cu cel mai mare punctaj trimisă până la termenul limită (X aprilie, ora 23:59); | + | *puteţi încărca mai multe soluţii, se va lua în considerare soluţia cu cel mai mare punctaj trimisă până la termenul limită (20 mai, ora 23:59); |
*Arhiva temei va avea numele GrupaSerie_Nume_Prenume_TemaNr.zip și va fi încărcată pe [[https:// | *Arhiva temei va avea numele GrupaSerie_Nume_Prenume_TemaNr.zip și va fi încărcată pe [[https:// | ||
Linia 75: | Linia 102: | ||
* Menţineţi cel puţin un nivel minimal de aspect al codului şi evitaţi inconsistenţa (indentare haotică, numeroase combinaţii de caractere de tip " | * Menţineţi cel puţin un nivel minimal de aspect al codului şi evitaţi inconsistenţa (indentare haotică, numeroase combinaţii de caractere de tip " | ||
* Arhiva trimisă conține (direct în rădăcină): | * Arhiva trimisă conține (direct în rădăcină): | ||
- | - Makefile-ul (cu regulile **make build** și **make clean**). Executabilul generat trebuie să se numească | + | |
+ | | ||
- fișierul README în care va fi descrisă soluția problemei; | - fișierul README în care va fi descrisă soluția problemei; | ||
* Dacă soluția voastră nu compilează, | * Dacă soluția voastră nu compilează, | ||
* Temele care vor fi copiate vor primi 0 pct şi studenţii implicaţi - mustrări şi vor figura pe blacklist-ul cursului de SDA. | * Temele care vor fi copiate vor primi 0 pct şi studenţii implicaţi - mustrări şi vor figura pe blacklist-ul cursului de SDA. |