Detalii evaluare #50487687

Rezumat problemă

#1703 Parchet

Meseria de parchetar a devenit mai uşoară de când a apărut parchetul laminat. Acesta se livrează în plăci pătratice de câte 1 m2 şi montarea lui este destul de uşoară. Gigel este convins că este suficient de priceput să facă această operaţie în propria locuinţă. El dispune de planul locuinţei şi a cumpărat o anumită cantitate reprezentând X m2 de parchet laminat. Planul locuinţei este descris printr-un tablou bidimensional de dimensiuni N x M, fiecare element al tabloului reprezentând exact 1 m2. Pereţii sunt reprezentaţi prin caracterul ‘P’ iar suprafeţele camerelor prin caracterul ‘S’ (spaţiu). În planul din figura următoare este descrisă o locuinţă cu 5 camere acestea având respectiv, suprafeţele de 10, 2, 1, 3, 5 m2.

PPPPPPPPP
PSSSPSPSP
PSSSPSPPP
PSSPPPPSP
PSPPSSPSP
PSPSSSPSP
PPPPPPPPP

Gigel nu este sigur de faptul că parchetul cumpărat îi ajunge. Din această cauză a hotărât iniţial să pună parchetul începând cu camera cea mai mare, apoi în următoarea, în ordinea descrescătoare a suprafeţei şi aşa mai departe, până în momentul în care parchetul rămas nu mai este suficient pentru acoperirea suprafeţei următoarei camere. Nu va lăsa neparchetată o cameră pentru a parcheta una cu o suprafaţă mai mică.

Gigel se mai gândeşte şi la posibilitatea de a acoperi complet un număr maxim de camere folosind întreaga cantitate de parchet.

Fiind date N, M, X şi planul locuinţei să se determine:

  1. numărul C de camere pe care a reuşit să le acopere Gigel şi numărul R de m2 de parchet care îi rămân, procedând aşa cum a hotărât iniţial;
  2. numărul de posibilităţi de parchetare a unui număr maxim de camere, folosind întreaga cantitate de parchet.

ONI 2016, clasa a VII-a

Detalii

Problema Parchet Operații I/O parchet.in/parchet.out
Limita timp 0.3 secunde Limita memorie Total: 2 MB / Stivă 2 MB
Id soluție #50487687 Utilizator Andrei Preda (JUCATORHacker)
Fișier parchet.cpp Dimensiune 1.36 KB
Data încărcării 11 Aprilie 2024, 11:55 Scor / rezultat 44 puncte

Evaluare


Mesaj compilare

parchet.cpp:4:0: warning: ignoring #pragma comment  [-Wunknown-pragmas]
 #pragma comment(linker, "/STACK:84283784")

 ^
parchet.cpp: In function 'int main()':
parchet.cpp:50:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         while (i < v.size())

                           ^

Rezultat evaluare

Test Timp Mesaj evaluare Scor posibil Scor obținut
1 0 secunde OK. 1 1
2 0 secunde OK. 2 2
3 0 secunde OK. 3 3
4 0 secunde OK. 3 3
5 0 secunde OK. 4 4
6 0 secunde OK. 4 4
7 0 secunde OK. 4 4
8 0 secunde OK. 4 4
9 0 secunde OK. 4 4
10 0 secunde OK. 4 4
11 0 secunde OK. 5 5
12 0 secunde OK. 6 6
13 0 secunde Caught fatal signal 11 6 0
14 0 secunde Raspuns gresit. 1 0
15 0 secunde Raspuns gresit. 2 0
16 0 secunde Raspuns gresit. 3 0
17 0 secunde Raspuns gresit. 3 0
18 0 secunde Raspuns gresit. 4 0
19 0 secunde Raspuns gresit. 4 0
20 0 secunde Raspuns gresit. 4 0
21 0 secunde Raspuns gresit. 4 0
22 0 secunde Raspuns gresit. 4 0
23 0 secunde Raspuns gresit. 4 0
24 0 secunde Raspuns gresit. 5 0
25 0 secunde Raspuns gresit. 6 0
26 0 secunde Caught fatal signal 11 6 0
Punctaj total 44

Cum funcționează evaluarea?

www.pbinfo.ro permite evaluarea a două tipuri de probleme:

  • probleme la care rezolvarea presupune scrierea unui program complet
  • probleme la care rezolvarea presupune scrierea unei secvențe de program - câteva instrucțiuni, o listă de declarații, una sau mai multe funcții, etc.

Problema Parchet face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:

  • Programul sursă este compilat folosind compilatorul corespunzător. Dacă în urma compilării se obțin erori sau avertismente, acestea sunt afișate în această pagină.
  • Dacă programul a fost compilat, executabilul obținut va fi rulat, furnizându-i-se unul sau mai multe seturi de date de intrare, în concordanță cu restricțiile specifice problemei. Pentru fiecare set de date se obține un anumit punctaj, în raport cu corectitudinea soluției tale.

Suma punctajelor acordate pe testele utilizate pentru verificare este 100. Astfel, soluția ta poate obține cel mult 100 de puncte, caz în care se poate considera corectă.