Detalii evaluare #43559991

Rezumat problemă

#716 cmin

Jocul cmin constă în a găsi o strategie pentru a deplasa un anumit număr de jetoane identice pe o tablă pătratică, în scopul obţinerii unei configuraţii finale, cu un cost minim.

Tabla are n*n celule, aflate la intersecţia a n rânduri numerotate de la 1 la n de sus în jos şi a n coloane, numerotate de la 1 la n de la stânga spre dreapta. Numărul n este întotdeauna par.

La momentul iniţial al jocului, pe tablă se găsesc k jetoane în poziţii cunoscute. Fiecare jeton poate fi deplasat doar pe verticală, din celula iniţială într-o celulă finală neocupată de un alt jeton. Un jeton poate fi deplasat chiar dacă între poziţia sa iniţială şi cea finală există celule ocupate de către alte jetoane.

Costul deplasării unui jeton pe verticală, din celula curentă într-o celulă adiacentă este 1 (o unitate). Un jeton poate fi mutat de mai multe ori. Jucătorul decide ordinea deplasării jetoanelor. Acesta poate să mute 0, 1 sau chiar toate jetoanele pentru a termina jocul cu un cost total minim. Costul total este suma costurilor deplasării tuturor jetoanelor.

Jocul cmin se termină când diferenţa în valoare absolută dintre numărul de jetoane care se află pe primele n/2 rânduri (cele de sus) şi numărul de jetoane care se găsesc pe ultimele n/2 rânduri (cele de jos), este minimă.

Cunoscând numărul n de rânduri şi de coloane ale tablei şi poziţiile iniţiale ale jetoanelor, determinaţi costul total minim necesar pentru deplasarea acestora, astfel încât diferenţa în valoare absolută dintre numărul jetoanelor care se vor găsi în final pe primele n/2 rânduri şi numărul jetoanelor care se vor găsi pe ultimele n/2 rânduri, să fie minimă.

Detalii

Problema cmin Operații I/O cmin.in/cmin.out
Limita timp 0.5 secunde Limita memorie Total: 64 MB / Stivă 8 MB
Id soluție #43559991 Utilizator Trâmbițaș Alexandru-Luca (Alex_Tr123)
Fișier cmin.cpp Dimensiune 437 B
Data încărcării 03 Mai 2023, 15:33 Scor / rezultat Eroare de compilare

Evaluare


Mesaj compilare

cmin.cpp: In function 'int main()':
cmin.cpp:7:24: error: invalid use of incomplete type 'std::ifstream {aka class std::basic_ifstream<char>}'
     ifstream ("cmin.in");

                        ^
In file included from /usr/include/c++/4.8/ios:38:0,
                 from /usr/include/c++/4.8/ostream:38,
                 from /usr/include/c++/4.8/iostream:39,
                 from cmin.cpp:1:
/usr/include/c++/4.8/iosfwd:111:11: error: declaration of 'std::ifstream {aka class std::basic_ifstream<char>}'
     class basic_ifstream;
           ^
cmin.cpp:8:25: error: invalid use of incomplete type 'std::ofstream {aka class std::basic_ofstream<char>}'
     ofstream ("cmin.out");

                         ^
In file included from /usr/include/c++/4.8/ios:38:0,
                 from /usr/include/c++/4.8/ostream:38,
                 from /usr/include/c++/4.8/iostream:39,
                 from cmin.cpp:1:
/usr/include/c++/4.8/iosfwd:114:11: error: declaration of 'std::ofstream {aka class std::basic_ofstream<char>}'
     class basic_ofstream;
           ^
cmin.cpp:9:5: error: 'f' was not declared in this scope
     f >> n;

     ^
cmin.cpp:9:10: error: 'n' was not declared in this scope
     f >> n;

          ^
cmin.cpp:10:10: error: 'i' was not declared in this scope
     for (i=1; i<=n; ++i)

          ^
cmin.cpp:11:8: error: 'j' was not declared in this scope
   for (j=1; j<=n; ++j)

        ^
cmin.cpp:17:8: error: 'k1' was not declared in this scope
      ++k1;

        ^
cmin.cpp:19:8: error: 'k2' was not declared in this scope
      ++k2;

        ^
cmin.cpp:22:6: error: 'k1' was not declared in this scope
  if (k1==k2)

      ^
cmin.cpp:22:10: error: 'k2' was not declared in this scope
  if (k1==k2)

          ^
cmin.cpp:28:4: error: 'k' was not declared in this scope
    k = (k1-k2)/2;

    ^

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