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 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
stdout | stdin | Explicatie |
---|---|---|
| 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 |
! abc | -1 | abc este chiar sirul secret! |