Detalii evaluare #37497656

Rezumat problemă

#1648 Diez

Negrimon a găsit într-o culegere această problemă #legendară: peste un şir de caractere de lungime N, alcătuit din litere mici ale alfabetului englez, se efectuează M operaţii de următoarele tipuri:

  1. Se inserează în şir caracterul x, pe poziţia p, după deplasarea cu o poziţie la dreapta a caracterelor situate pe poziţiile mai mari sau egale cu p. Dacă valoarea p este egală cu lungimea şirului, x este alipit la finalul şirului.
  2. Se răspunde cu 1 dacă secvenţa de litere care începe la poziţia q1 şi are lungimea lg coincide literă cu literă, cu secvenţa care începe la poziţia q2 şi are aceeaşi lungime lg şi se răspunde cu 0 în caz contrar. Este posibil ca cele două secvenţe să se suprapună complet sau parţial în şirul din care ele fac parte.

Fiind dat un şir de N litere mici şi o listă de M operaţii, să se afişeze răspunsurile la operaţiile de tip 2, respectând ordinea din succesiunea de operaţii date.

Urmasii lui Moisil, 2016

Detalii

Problema Diez Operații I/O diez.in/diez.out
Limita timp 2 secunde Limita memorie Total: 128 MB / Stivă 8 MB
Id soluție #37497656 Utilizator Sala Darius (sala_boss)
Fișier diez.cpp Dimensiune 8.89 KB
Data încărcării 06 Septembrie 2022, 06:41 Scor / rezultat Eroare de compilare

Evaluare


Mesaj compilare

In file included from /usr/include/c++/4.8/cassert:43:0,
                 from diez.cpp:4:
diez.cpp: In function 'int main()':
diez.cpp:122:45: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                  assert(i < power_base.size());

                                             ^
diez.cpp:128:39: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                  assert(i < aib0.size());

                                       ^
diez.cpp:136:55: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                          assert(pos < final_line.size());

                                                       ^
diez.cpp:143:53: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                          assert(j < final_line.size());

                                                     ^
diez.cpp:157:39: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                  assert(i < aib1.size());

                                       ^
diez.cpp:174:55: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                          assert(st1 < final_line.size());

                                                       ^
diez.cpp:175:55: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                          assert(st2 < final_line.size());

                                                       ^
diez.cpp: In function 'void UpdateHashSegmentTree(int, int, int, int)':
diez.cpp:226:50: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
          assert(0 < node && node < seg_tree.size());

                                                  ^
diez.cpp:227:48: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
          assert(0 < st && st < final_line.size());

                                                ^
diez.cpp:228:59: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
          assert(0 < en && st < en && en < final_line.size());

                                                           ^
diez.cpp: In function 'void BuildSegmentTree(int, int, int)':
diez.cpp:249:50: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
          assert(0 < node && node < seg_tree.size());

                                                  ^
diez.cpp:250:48: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
          assert(0 < st && st < final_line.size());

                                                ^
diez.cpp:251:48: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
          assert(0 < en && en < final_line.size());

                                                ^
diez.cpp:256:48: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
          assert(0 < st && st < final_line.size());

                                                ^
diez.cpp:257:59: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
          assert(0 < en && st < en && en < final_line.size());

                                                           ^
diez.cpp: In function 'int SearchPosAIB(std::vector<int>&, int, int)':
diez.cpp:284:32: error: 'w' was not declared in this scope
         for (int pw = 1 << 23; w;pw >= 1)[   IF pos +  ttal [

                                ^
diez.cpp:284:37: warning: for increment expression has no effect [-Wunused-value]
         for (int pw = 1 << 23; w;pw >= 1)[   IF pos +  ttal [

                                     ^
diez.cpp:284:46: error: 'IF' was not declared in this scope
         for (int pw = 1 << 23; w;pw >= 1)[   IF pos +  ttal [

                                              ^
diez.cpp:284:49: error: expected ',' before 'pos'
         for (int pw = 1 << 23; w;pw >= 1)[   IF pos +  ttal [

                                                 ^
diez.cpp:284:53: error: expected ',' before '+' token
         for (int pw = 1 << 23; w;pw >= 1)[   IF pos +  ttal [

                                                     ^
diez.cpp:284:53: error: expected identifier before '+' token
diez.cpp:289:23: error: expected ']' at end of input
                   ro=1]
                       ^
diez.cpp: In lambda function:
diez.cpp:289:23: error: expected '{' at end of input
diez.cpp: In function 'int SearchPosAIB(std::vector<int>&, int, int)':
diez.cpp:289:23: error: expected ';' at end of input
diez.cpp:289:23: error: expected '}' at end of input
diez.cpp:289:23: warning: no return statement in function returning non-void [-Wreturn-type]
diez.cpp: In function 'int main()':
diez.cpp:83:40: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
          freopen("diez.in", "r", stdin);

                                        ^
diez.cpp:84:42: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
          freopen("diez.out", "w", stdout);

                                          ^
diez.cpp:89:34: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
          scanf("%d %d\n", &N, &M);

                                  ^
diez.cpp:92:41: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
          scanf("%s", (initial_line + 1));

                                         ^
diez.cpp:95:36: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
                  scanf("%d", &type);

                                    ^
diez.cpp:98:44: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
                          scanf("%d", &pos1);

                                            ^
diez.cpp:104:44: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
                          scanf("%d", &pos1);

                                            ^
diez.cpp:106:44: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
                          scanf("%d", &pos2);

                                            ^
diez.cpp:108:42: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
                          scanf("%d", &lg);

                                          ^

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