Revizia anterioară Revizia următoare
Fişierul intrare/ieşire: | interact.in, interact.out | Sursă | FMI No Stress 8 |
Autor | Lucian Bicsi | Adăugată de | |
Timp execuţie pe test | 0.5 sec | Limită de memorie | 262144 kbytes |
Scorul tău | N/A | Dificultate | N/A |
Vezi solutiile trimise | Statistici
Interact
Comisia are un şir secret s format din N (1 ≤ N ≤ 100 ) caractere mici ( a - z ) ale alfabetului englez iar voi trebuie să ghiciti şirul. Aveti la dispozitie următoarele tipuri de operatii:
? t - Este t subsir in sirul secret s? Daca da, comisia va afişa 1, altfel
stdout stdin Explicare
1 6 T si N
0 0 1 3 5 Interogare
0 Raspuns la interogare
0 4 5 1 3 Interogare
1 Raspuns la interogare
1
3
-1 0 -1 1 -1 -1
-1 2 -1 4 5 -1 va afisa 0. Lungimea lui t nu trebuie sa depaseasca 1000 de caractere.
! str - Sirul secret este str. Aceasta operatie poate fi facuta o singura data, iar comisia va va rasplati corespunzator.
Puteti face maxim 6000 de operatii.
Interactiune
Problema aceasta este interactiva. Initial veti putea citi de la stdin numarul N reprezentand lungimea sirului secret.
Pentru fiecare operatie veti proceda astfel: veti afisa la stdout operatia si veti da flush la stdout(de exemplu cu fflush(stdout) in C sau cu std::cout << std::flush în C++). Apoi cititi raspunsul la operatia voastra din stdin ($1$ sau 0 in cazul in care operatia voastra a fost de tipul ? t SAU -1 cand se inchide programul (OK sau cu eroare). Cand primiti -1 de la comisie, trebuie sa opriti executia programului (de exemplu return 0).
DE ADAUGAT IN ENUNT:
- LA UN QUERY - SIRUL DE QUERY ARE LUNGIME MAXIM 1000
- OPERATIA ! ESTE TOT UN QUERY SI SE NUMARA LA LIMITA DE 6000
- DE FACUT DE ASA NATURA CAND INTERACTIUNEA SE OPRESTE SA AFISAM UN TOKEN GEN "OK / BAD"
^
\--- COMISIA AFISEAZA -1 CAND SE INCHIDE PROGRAMUL (OK SAU EROARE). CONCURENTUL TRE SA DEA RETURN LA PRIMUL -1 INTALNIT
Restricţii
- 1 ≤ N ≤ 100
- Pentru teste în valoare de 30 de puncte, N ≤ 20
- Puteti folosi o singura data operatia ! str !!!
- Formal, t este subşir în s dacă t se poate obţine din s eliminând 0 sau mai multe caractere şi păstrând ordinea relativă a caracterelor neeliminate. Spre ex: for, if, arena sunt subisiruri ale sirului infoarena.
Exemplu
table(example). |_. stdout |_. stdin |_. Explicatie ||
| ? ba
| 3
| N = 3
| ? a
| 1
| a este subir in sirul secret |
| ? ba
| 0
| ba nu este subsir in sirul secret |
| ? ac
| 1
| ac este subsir in sirul secret |
| ? abc
| 1
| abc este subir in sirul secret |
|