Detalii evaluare #18038031

Rezumat problemă

În Piatra Neamț sunt N+2 locații numerotate de la 0 la N+1, de la stânga la dreapta. Distanța dintre două locații i si j este egală cu |i – j|. La început, în locațiile 0 și N+1, sunt construite benzinării, și în celelalte locații sunt case. Compania BuildNT a decis sa construiască N benzinării, una în fața fiecărei case.

Înainte să construiască o benzinărie, constructorii calculează valoarea S egală cu suma distanțelor de la fiecare casă la cea mai apropiată benzinărie, si adaugă această sumă la suma totală T. După, ei aleg o casă, la cea mai mare distanță de orice benzinărie, în fața căreia construiesc o nouă benzinărie. Casele sunt alese în așa fel încât, după construirea benzinăriilor, valoarea S recalculată sa fie minimă. Dacă sunt mai multe case ce respectă această regulă, se alege prima din stânga.
Desigur, după ce toate benzinăriile au fost construite, suma S va deveni 0 și suma totală T nu se va mai schimba.

Calculați T pentru o valoare dată N.

Olimpiada internațională pe Echipe, 2018

Detalii

Problema Benzinarii1 Operații I/O tastatură/ecran
Limita timp 0.1 secunde Limita memorie Total: 64 MB / Stivă 8 MB
Id soluție #18038031 Utilizator Roata Palade Mircea (MirceaRoata)
Fișier benzinarii1.cpp Dimensiune 836 B
Data încărcării 27 Octombrie 2019, 14:12 Scor / rezultat 0 puncte

Evaluare


Mesaj compilare

benzinarii1.cpp: In function 'long long int sum(long long int)':
benzinarii1.cpp:14:25: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   return ((n >> 1) * (n >> 1 + 1) >> 1) << 1 + (n >> 1 + 1);

                         ^
benzinarii1.cpp:14:51: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   return ((n >> 1) * (n >> 1 + 1) >> 1) << 1 + (n >> 1 + 1);

                                                   ^
benzinarii1.cpp:14:46: warning: suggest parentheses around '+' inside '<<' [-Wparentheses]
   return ((n >> 1) * (n >> 1 + 1) >> 1) << 1 + (n >> 1 + 1);

                                              ^
benzinarii1.cpp:15:24: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
  return ((n >> 1) * (n >> 1 + 1) >> 1) << 1;

                        ^
benzinarii1.cpp: In function 'int32_t main()':
benzinarii1.cpp:47:21: warning: suggest parentheses around '-' inside '>>' [-Wparentheses]
    suma += sum(lung >> 1 - 1);

                     ^
benzinarii1.cpp:49:16: warning: suggest parentheses around '-' inside '>>' [-Wparentheses]
    q.push(lung >> 1 - 1);

                ^

Rezultat evaluare

Test Timp Mesaj evaluare Scor posibil Scor obținut
1 0.82 secunde Caught fatal signal 11 5 0
2 0.828 secunde Caught fatal signal 11 5 0
3 0.832 secunde Caught fatal signal 11 5 0
4 0.896 secunde Caught fatal signal 11 5 0
5 Depășit Limita de timp depășită 5 0
6 0.892 secunde Caught fatal signal 11 5 0
7 0.872 secunde Caught fatal signal 11 5 0
8 0.796 secunde Caught fatal signal 11 5 0
9 0.884 secunde Caught fatal signal 11 5 0
10 0.836 secunde Caught fatal signal 11 5 0
11 0.8 secunde Caught fatal signal 11 5 0
12 0.864 secunde Caught fatal signal 11 5 0
13 0.8 secunde Caught fatal signal 11 5 0
14 0.892 secunde Caught fatal signal 11 5 0
15 0.84 secunde Caught fatal signal 11 5 0
16 0.876 secunde Caught fatal signal 11 5 0
17 0.804 secunde Caught fatal signal 11 5 0
18 Depășit Limita de timp depășită 5 0
19 0.816 secunde Caught fatal signal 11 5 0
20 0.864 secunde Caught fatal signal 11 5 0
Punctaj total 0

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 Benzinarii1 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ă.