Differences

This shows you the differences between two versions of the page.

Link to this comparison view

poo-is-ab:tema:2025:02_test [2025/10/31 18:16]
marius.trifu created
poo-is-ab:tema:2025:02_test [2025/10/31 18:47] (current)
marius.trifu [Informații generale]
Line 2: Line 2:
  
 <note important>​ <note important>​
-**Publicare:​** ​03.11.2024 ​ \\ +**Publicare:​** ​02.11.2024 ​ \\ 
-**Deadline:​** ​17.11.2024, ora 23:59+**Deadline:​** ​16.11.2024, ora 23:59
 </​note>​ </​note>​
  
Line 11: Line 11:
   * Tema trebuie realizată **exclusiv în C++**.  ​   * Tema trebuie realizată **exclusiv în C++**.  ​
   * Nu se permite folosirea STL (implementați structuri și algoritmi de la zero).  ​   * Nu se permite folosirea STL (implementați structuri și algoritmi de la zero).  ​
-  * Testare automată pe **seturi input/output**.+  * Testare automată pe **18 seturi input**.
   * Toate valorile numerice din fișiere trebuie să fie în format standard (punct pentru zecimale).   * Toate valorile numerice din fișiere trebuie să fie în format standard (punct pentru zecimale).
   * Se acceptă implementare procedurală sau OOP (dar organizată pe fișiere `.h/.cpp`).   * Se acceptă implementare procedurală sau OOP (dar organizată pe fișiere `.h/.cpp`).
Line 22: Line 22:
     Exemplu: Dacă în pătratul 00x00 ai plantat morcov la ziua 1 și l-ai cules la ziua 4, nu poți planta din nou morcov în același pătrat imediat după.     Exemplu: Dacă în pătratul 00x00 ai plantat morcov la ziua 1 și l-ai cules la ziua 4, nu poți planta din nou morcov în același pătrat imediat după.
   * **Plante prietenoase:​** Unele legume pot fi plantate doar după alte legume specifice (legumă după legumă).  ​   * **Plante prietenoase:​** Unele legume pot fi plantate doar după alte legume specifice (legumă după legumă).  ​
-    ​Exemplu: Morcovul poate fi plantat doar după ceapă, castravete sau rădăcinoase.+    ​Aceste relații vor fi menționate în secțiunea ROTATIE a fișierului de intrare.
   * **Sumă finală maximă:** Obiectivul este să obțineți cea mai mare sumă finală de bani posibilă în perioada de simulare.   * **Sumă finală maximă:** Obiectivul este să obțineți cea mai mare sumă finală de bani posibilă în perioada de simulare.
   * **Gestionează banii:** Ai o sumă inițială și fiecare plantare costă bani. Nu poți planta dacă nu ai bani suficienți.   * **Gestionează banii:** Ai o sumă inițială și fiecare plantare costă bani. Nu poți planta dacă nu ai bani suficienți.
Line 30: Line 30:
   * Afișați toate acțiunile în ordine cronologică în fișierul de ieșire.   * Afișați toate acțiunile în ordine cronologică în fișierul de ieșire.
   * La sfârșitul simulării, calculați suma finală de bani obținută.   * La sfârșitul simulării, calculați suma finală de bani obținută.
 +{{ :​poo-is-ab:​tema:​2025:​screenshot_14.png?​400 |}}
 ===== 2. Formate fișiere ===== ===== 2. Formate fișiere =====
  
Line 39: Line 39:
 ^ ferma.txt ^ ^ ferma.txt ^
 | <​code>​ | <​code>​
-L L ZILE BANI+L L ZILE BANI N
 nume_leguma1 timp_cultivare1 cost1 pret_vanzare1 nume_leguma1 timp_cultivare1 cost1 pret_vanzare1
 nume_leguma2 timp_cultivare2 cost2 pret_vanzare2 nume_leguma2 timp_cultivare2 cost2 pret_vanzare2
 ... ...
-ROTATIE +ROTATIE ​M 
-leguma1 ​leguma2 (sau N/A daca nu are restrictii) +leguma1 N/A 
-leguma3 leguma4 ​(sau N/A daca nu are restrictii)+leguma2 leguma1 
 +leguma3 ​leguma2 
 +leguma4 ​leguma1
 ... ...
 </​code>​ | </​code>​ |
Line 54: Line 56:
     * **ZILE** – numărul de zile de simulare, 1 ≤ ZILE ≤ 100     * **ZILE** – numărul de zile de simulare, 1 ≤ ZILE ≤ 100
     * **BANI** – suma inițială de bani (RON), 1 ≤ BANI ≤ 10000     * **BANI** – suma inițială de bani (RON), 1 ≤ BANI ≤ 10000
 +    * **N** – numărul de legume definite, 1 ≤ N ≤ 20
     * **nume_leguma** – numele legumei (maxim **30 caractere**,​ fără spații)     * **nume_leguma** – numele legumei (maxim **30 caractere**,​ fără spații)
     * **timp_cultivare** – numărul de zile necesare pentru cultivare, 1 ≤ timp_cultivare ≤ 30     * **timp_cultivare** – numărul de zile necesare pentru cultivare, 1 ≤ timp_cultivare ≤ 30
     * **cost** – costul de plantare a unei legume (RON), 1 ≤ cost ≤ 1000     * **cost** – costul de plantare a unei legume (RON), 1 ≤ cost ≤ 1000
     * **pret_vanzare** – prețul de vânzare pentru o legumă (RON), 1 ≤ pret_vanzare ≤ 5000     * **pret_vanzare** – prețul de vânzare pentru o legumă (RON), 1 ≤ pret_vanzare ≤ 5000
-    * **ROTATIE** – secțiunea ce definește relațiile de rotație între legume+    * **ROTATIE ​M** – secțiunea ce definește relațiile de rotație între legume 
 +    * **M** – numărul de linii de rotație, M ≥ N
     * **leguma1 leguma2** – leguma1 poate fi plantată **după** leguma2     * **leguma1 leguma2** – leguma1 poate fi plantată **după** leguma2
     * **leguma1 N/A** – leguma1 nu are restricții de rotație (poate fi plantată după orice legumă)     * **leguma1 N/A** – leguma1 nu are restricții de rotație (poate fi plantată după orice legumă)
-    * **Toate** legumele trebuie să apară în secțiunea ROTATIEfie cu o restricțiefie cu N/A+    * Pot exista ​**mai multe linii** pentru aceeași legumă (leguma1 poate fi plantată după leguma2leguma3etc.)
  
 **Restricții:​** **Restricții:​**
-  * Numărul total de tipuri de legume: 1 ≤ număr legume ​≤ 20+  * Numărul total de tipuri de legume: 1 ≤ ≤ 20
   * Fiecare legumă apare cel mult o dată în lista de legume   * Fiecare legumă apare cel mult o dată în lista de legume
-  * În secțiunea ROTATIE, fiecare legumă din lista de legume trebuie să aibă o linie (fie cu o restricție ​de rotație, fie cu N/A)+  * Numărul de linii de rotație: M ≥ (pot fi mai multe reguli pentru aceeași legumă)
  
 ^ ferma.txt ^ ^ ferma.txt ^
 | <​code>​ | <​code>​
-3 3 10 500+3 3 10 500 4
 morcov 3 50 200 morcov 3 50 200
 ceapa 2 30 150 ceapa 2 30 150
 castravete 4 80 300 castravete 4 80 300
 roșie 5 100 400 roșie 5 100 400
-ROTATIE+ROTATIE ​4
 morcov ceapa morcov ceapa
 ceapa N/A ceapa N/A
Line 187: Line 191:
   * Gestionați starea fermei (ce este plantat în fiecare pătrat, când a fost plantat, etc.).   * Gestionați starea fermei (ce este plantat în fiecare pătrat, când a fost plantat, etc.).
  
-===== 5. Punctaj (5p) ===== +===== 5. Punctaj (10p) ===== 
-  * **Teste automate (4p)** +  * **Teste automate (9p)** 
-    * teste × 0.5p = 4p+    * 18 teste × 0.5p = 9p
   * **Fișier README.md (1p)** care să conțină:   * **Fișier README.md (1p)** care să conțină:
     * Nume și grupă     * Nume și grupă
Line 210: Line 214:
 ^ ferma.txt ^ ^ ferma.txt ^
 | <​code>​ | <​code>​
-2 2 15 300+2 2 10 300 2
 morcov 3 50 200 morcov 3 50 200
 ceapa 2 40 160 ceapa 2 40 160
-ROTATIE+ROTATIE ​2
 morcov ceapa morcov ceapa
 ceapa N/A ceapa N/A
poo-is-ab/tema/2025/02_test.1761927415.txt.gz · Last modified: 2025/10/31 18:16 by marius.trifu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0