Detalii evaluare #51499258

Rezumat problemă

#718 Sah2

Mihai a primit de ziua sa un joc de şah special. Tabla jocului are forma pătrată, de dimensiune N dar unele poziţii sunt marcate ca obstacole şi ele nu pot fi ocupate cu piese. În plus, jocul său are o singură piesă, numită “nebun”. Două poziţii pe tablă sunt desemnate ca poziţie iniţială şi poziţie finală. Mihai vrea să determine o modalitate de a deplasa nebunul, cu un număr minim de mutări, astfel încât acesta să ajungă din poziţia iniţială în poziţia finală. Mihai va respecta regulile de mutare a nebunului la jocul de şah, adică din poziţia curentă nebunul se poate muta doar pe diagonală, în oricare dintre cele 4 direcţii, oricâte poziţii deodată dar fără a sări peste obstacole. În plus, Mihai are voie la o excepţie de la această regulă: îi este permis să execute cel mult două mutări după regula de avansare a calului pe tabla de şah.

Dată fiind configuraţia tablei de şah precum şi poziţiile iniţială şi finală ale piesei, se cere determinarea numărului minim de mutări pentru a deplasa piesa între cele două poziţii.

Lot Juniori, Resita, 2012

Detalii

Problema Sah2 Operații I/O sah2.in/sah2.out
Limita timp 0.3 secunde Limita memorie Total: 32 MB / Stivă 8 MB
Id soluție #51499258 Utilizator Ognean Dennis (Dennis_2006)
Fișier sah2.cpp Dimensiune 2.42 KB
Data încărcării 29 Iunie 2024, 00:28 Scor / rezultat Eroare de compilare

Evaluare


Mesaj compilare

sah2.cpp:10:0: warning: "LLONG_MAX" redefined [enabled by default]
 #define LLONG_MAX 9223372036854775807

 ^
In file included from /usr/lib/gcc/i686-linux-gnu/4.8/include-fixed/limits.h:168:0,
                 from /usr/lib/gcc/i686-linux-gnu/4.8/include-fixed/syslimits.h:7,
                 from /usr/lib/gcc/i686-linux-gnu/4.8/include-fixed/limits.h:34,
                 from /usr/include/c++/4.8/climits:41,
                 from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:39,
                 from sah2.cpp:1:
/usr/include/limits.h:134:0: note: this is the location of the previous definition
 #  define LLONG_MAX __LONG_LONG_MAX__
 ^
sah2.cpp: In function 'void bfs(long long int, long long int)':
sah2.cpp:32:19: error: converting to 'std::queue<std::tuple<long long int, long long int, long long int> >::value_type {aka std::tuple<long long int, long long int, long long int>}' from initializer list would use explicit constructor 'constexpr std::tuple< <template-parameter-1-1> >::tuple(_UElements&& ...) [with _UElements = {long long int&, long long int&, int}; <template-parameter-2-2> = void; _Elements = {long long int, long long int, long long int}]'
     q.push({i,j,0});

                   ^
sah2.cpp:35:14: error: expected unqualified-id before '[' token
         auto [x,y,c]=q.front();

              ^
sah2.cpp:37:12: error: 'x' was not declared in this scope
         if(x==i_f && y==j_f)

            ^
sah2.cpp:37:22: error: 'y' was not declared in this scope
         if(x==i_f && y==j_f)

                      ^
sah2.cpp:39:34: error: 'c' was not declared in this scope
             ans=min(ans,dp[x][y][c]);

                                  ^
sah2.cpp:44:22: error: 'x' was not declared in this scope
             int inou=x+di[d];

                      ^
sah2.cpp:45:22: error: 'y' was not declared in this scope
             int jnou=y+dj[d];

                      ^
sah2.cpp:46:31: error: 'c' was not declared in this scope
             int mini=dp[x][y][c];

                               ^
sah2.cpp:51:43: error: no matching function for call to 'std::queue<std::tuple<long long int, long long int, long long int> >::push(<brace-enclosed initializer list>)'
                     q.push({inou, jnou, c});

                                           ^
sah2.cpp:51:43: note: candidates are:
In file included from /usr/include/c++/4.8/queue:64:0,
                 from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:85,
                 from sah2.cpp:1:
/usr/include/c++/4.8/bits/stl_queue.h:212:7: note: void std::queue<_Tp, _Sequence>::push(const value_type&) [with _Tp = std::tuple<long long int, long long int, long long int>; _Sequence = std::deque<std::tuple<long long int, long long int, long long int>, std::allocator<std::tuple<long long int, long long int, long long int> > >; std::queue<_Tp, _Sequence>::value_type = std::tuple<long long int, long long int, long long int>]
       push(const value_type& __x)
       ^
/usr/include/c++/4.8/bits/stl_queue.h:212:7: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const value_type& {aka const std::tuple<long long int, long long int, long long int>&}'
/usr/include/c++/4.8/bits/stl_queue.h:217:7: note: void std::queue<_Tp, _Sequence>::push(std::queue<_Tp, _Sequence>::value_type&&) [with _Tp = std::tuple<long long int, long long int, long long int>; _Sequence = std::deque<std::tuple<long long int, long long int, long long int>, std::allocator<std::tuple<long long int, long long int, long long int> > >; std::queue<_Tp, _Sequence>::value_type = std::tuple<long long int, long long int, long long int>]
       push(value_type&& __x)
       ^
/usr/include/c++/4.8/bits/stl_queue.h:217:7: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'std::queue<std::tuple<long long int, long long int, long long int> >::value_type&& {aka std::tuple<long long int, long long int, long long int>&&}'
sah2.cpp:57:12: error: 'c' was not declared in this scope
         if(c<2)

            ^
sah2.cpp:61:26: error: 'x' was not declared in this scope
                 int inou=x+di_c[d];

                          ^
sah2.cpp:62:26: error: 'y' was not declared in this scope
                 int jnou=y+dj_c[d];

                          ^
sah2.cpp:67:43: error: no matching function for call to 'std::queue<std::tuple<long long int, long long int, long long int> >::push(<brace-enclosed initializer list>)'
                     q.push({inou,jnou,c+1});

                                           ^
sah2.cpp:67:43: note: candidates are:
In file included from /usr/include/c++/4.8/queue:64:0,
                 from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:85,
                 from sah2.cpp:1:
/usr/include/c++/4.8/bits/stl_queue.h:212:7: note: void std::queue<_Tp, _Sequence>::push(const value_type&) [with _Tp = std::tuple<long long int, long long int, long long int>; _Sequence = std::deque<std::tuple<long long int, long long int, long long int>, std::allocator<std::tuple<long long int, long long int, long long int> > >; std::queue<_Tp, _Sequence>::value_type = std::tuple<long long int, long long int, long long int>]
       push(const value_type& __x)
       ^
/usr/include/c++/4.8/bits/stl_queue.h:212:7: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const value_type& {aka const std::tuple<long long int, long long int, long long int>&}'
/usr/include/c++/4.8/bits/stl_queue.h:217:7: note: void std::queue<_Tp, _Sequence>::push(std::queue<_Tp, _Sequence>::value_type&&) [with _Tp = std::tuple<long long int, long long int, long long int>; _Sequence = std::deque<std::tuple<long long int, long long int, long long int>, std::allocator<std::tuple<long long int, long long int, long long int> > >; std::queue<_Tp, _Sequence>::value_type = std::tuple<long long int, long long int, long long int>]
       push(value_type&& __x)
       ^
/usr/include/c++/4.8/bits/stl_queue.h:217:7: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'std::queue<std::tuple<long long int, long long int, long long int> >::value_type&& {aka std::tuple<long long int, long long int, long long int>&&}'

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