Detalii evaluare #41169076

Rezumat problemă

#1201 Text1

Un şir format din cifre trebuie să fie tastat în una sau mai multe sesiuni.

Există două tastaturi: tastatura A care conţine taste cu toate combinaţiile de exact două cifre: tasta 00, tasta 01, 02, …, 98, 99 și tastatura B care conţine taste cu toate combinaţiile de exact trei cifre: tasta 000, tasta 001, …, 998, 999. Cifrele se vor introduce în una sau mai multe sesiuni, pentru o sesiune putându-se folosi o singură tastatură. Datorită unei ordonanțe de urgență, dacă o combinație de taste a fost introdusă cu una din tastaturi în sesiunea curentă și, continuând sesiunea, această combinație poate fi introdusă din nou, este necesar să continuăm sesiunea cel puțin până când o vom introduce din nou. În cazul în care introducem până atunci și alte taste, trebuie să continuăm sesiunea până când vom introduce ultima apariție a lor.

Astfel, dacă şirul 255222255257 este început folosind tastatura A, se va scrie obligatoriu într‑o sesiune 25 52 22 25 52. Suntem obligați să tastăm până la ultima apariție a tastei 25 în sesiunea curentă, și când folosim tasta 52 suntem obligați să continuăm până la ultima apariție a acesteia. A se observa că cifrele de pe pozițiile subliniate sunt tot 2 și 5, însă nu formează o tastă care se poate apăsa în sesiunea curentă. Deoarece se dorește un număr cât mai mare de sesiuni, se va începe o nouă sesiune în care se va scrie doar 57.

Cunoscându-se numărul total de cifre și secvența de cifre ce formează şirul, să se determine o modalitate de a despărţi textul astfel încât el să poată fi scris într-un număr maxim de sesiuni.

Detalii

Problema Text1 Operații I/O text1.in/text1.out
Limita timp 0.4 secunde Limita memorie Total: 64 MB / Stivă 8 MB
Id soluție #41169076 Utilizator Moldovan Robert (use KN) (moldovan_robert_lol)
Fișier text1.cpp Dimensiune 3.33 KB
Data încărcării 14 Ianuarie 2023, 17:54 Scor / rezultat 70 puncte

Evaluare


Mesaj compilare

text1.cpp: In function 'int sol(int)':
text1.cpp:71:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  if (poz==str.size()-1) return -0x3f3f3f3f;

                      ^
text1.cpp:72:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  if (poz>=str.size()) return 0;

                    ^
text1.cpp:76:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  if (poz+2-1<str.size()) {

                       ^
text1.cpp:100:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  if (poz+3-1<str.size()) {

                       ^
text1.cpp: In function 'int main()':
text1.cpp:134:38: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for (int poz = mod; poz < str.size(); poz += 2) {

                                      ^
text1.cpp:135:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    if (poz+2-1<str.size()) {

                         ^
text1.cpp:146:38: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for (int poz = mod; poz < str.size(); poz += 3) {

                                      ^
text1.cpp:147:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    if (poz+3-1<str.size()) {

                         ^
text1.cpp:161:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  while (poz<str.size()) {

                      ^

Rezultat evaluare

Test Timp Mesaj evaluare Scor posibil Scor obținut
0 0 secunde Corect! 10 10
1 0 secunde Corect! 10 10
2 0 secunde Corect! 10 10
3 0 secunde Corect! 10 10
4 0.184 secunde Corect! 10 10
5 0.256 secunde Corect! 10 10
6 Depășit Limita de timp depășită 10 0
7 0.368 secunde Corect! 10 10
8 Depășit Limita de timp depășită 10 0
9 Depășit Limita de timp depășită 10 0
Punctaj total 70

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