#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 255222255
25
7
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.
ONI 2015, Clasele XI-XII
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 | #42342681 | Utilizator | |
Fișier | text1.cpp | Dimensiune | 4.90 KB |
Data încărcării | 01 Martie 2023, 20:01 | Scor / rezultat | 100 puncte |
text1.cpp: In function 'int main()': text1.cpp:185:14: warning: suggest parentheses around '+' inside '>>' [-Wparentheses] cin >> a + 1; ^ text1.cpp:179:17: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] FastIO , FILES; ^ text1.cpp:179:17: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
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.056 secunde | Corect! | 10 | 10 | ||
5 | 0.076 secunde | Corect! | 10 | 10 | ||
6 | 0.16 secunde | Corect! | 10 | 10 | ||
7 | 0.16 secunde | Corect! | 10 | 10 | ||
8 | 0.204 secunde | Corect! | 10 | 10 | ||
9 | 0.184 secunde | Corect! | 10 | 10 | ||
Punctaj total | 100 |
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Text1 face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:
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ă.