Detalii evaluare #58737086

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
Consola Pracsiu Dan (dnprx) Adrian Panaete concurs

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 #58737086 Utilizator Raduta Mihail (Mihailraduta)
Fișier benzinarii1.cpp Dimensiune 3.65 KB
Data încărcării 28 Iulie 2025, 19:37 Scor/rezultat Eroare de compilare

Evaluare

Mesaj compilare

benzinarii1.cpp:12:44: error: '__int128_t' has not been declared
 std::ostream& operator<<(std::ostream& os, __int128_t val) {

                                            ^
benzinarii1.cpp:31:1: error: '__int128_t' does not name a type
 __int128_t calculate_s_for_segment(long long L) {

 ^
benzinarii1.cpp: In function 'int main()':
benzinarii1.cpp:52:5: error: '__int128_t' was not declared in this scope
     __int128_t total_t = 0;

     ^
benzinarii1.cpp:52:16: error: expected ';' before 'total_t'
     __int128_t total_t = 0;

                ^
benzinarii1.cpp:73:20: error: expected ';' before 's_current'
         __int128_t s_current = 0;

                    ^
benzinarii1.cpp:77:13: error: 's_current' was not declared in this scope
             s_current += (__int128_t)num * calculate_s_for_segment(len);

             ^
benzinarii1.cpp:77:38: error: expected ';' before 'num'
             s_current += (__int128_t)num * calculate_s_for_segment(len);

                                      ^
benzinarii1.cpp:75:23: warning: unused variable 'len' [-Wunused-variable]
             long long len = map_it->first;

                       ^
benzinarii1.cpp:76:23: warning: unused variable 'num' [-Wunused-variable]
             long long num = map_it->second;

                       ^
benzinarii1.cpp:83:20: error: expected ';' before 'reduction_per_split'
         __int128_t reduction_per_split = calculate_s_for_segment(L_max) - calculate_s_for_segment(L1) - calculate_s_for_segment(L2);

                    ^
benzinarii1.cpp:87:20: error: expected ';' before 'sum_to_add'
         __int128_t sum_to_add = (__int128_t)k * s_current;

                    ^
benzinarii1.cpp:89:13: error: 'sum_to_add' was not declared in this scope
             sum_to_add -= reduction_per_split * (__int128_t)k * (k - 1) / 2;

             ^
benzinarii1.cpp:89:27: error: 'reduction_per_split' was not declared in this scope
             sum_to_add -= reduction_per_split * (__int128_t)k * (k - 1) / 2;

                           ^
benzinarii1.cpp:89:61: error: expected ';' before 'k'
             sum_to_add -= reduction_per_split * (__int128_t)k * (k - 1) / 2;

                                                             ^
benzinarii1.cpp:91:9: error: 'total_t' was not declared in this scope
         total_t += sum_to_add;

         ^
benzinarii1.cpp:91:20: error: 'sum_to_add' was not declared in this scope
         total_t += sum_to_add;

                    ^
benzinarii1.cpp:111:18: error: 'total_t' was not declared in this scope
     std::cout << total_t << std::endl;

                  ^

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

Du-te sus!