Cadena binaria
Esta tarea es interactiva.
Existe una cadena binaria* oculta de longitud
. Tu objetivo es descubrir cuál es esta cadena.
Para hacerlo, puedes realizar un máximo de consultas. En cada consulta, debes imprimir
? q, donde es una cadena binaria de longitud
. Se responderá con:
2: sies exactamente igual a
, es decir, si
;
1: sicoincide con
en exactamente
posiciones, es decir, si
;
0: en cualquier otro caso.
Cuando hayas encontrado la respuesta, imprime ! x, donde debe ser la cadena oculta
, y termina tu programa inmediatamente.
* Una cadena binaria es una cadena formada únicamente por los caracteres 0 y 1. Por ejemplo, 010100, 11010 y 00000 son cadenas binarias, mientras que 0123, a01010b y b010 no lo son.
Interacción
La primera línea de la entrada contiene un entero (
). Se garantiza que
es par.
Luego de esto, podrás realizar las consultas o dar una respuesta final.
? qrealizar una consulta con una cadena binaria
de longitud
. El resultado será un entero
de acuerdo con lo que se describió anteriormente.
! xresponder con una cadena binaria
de longitud
.
Para esta tarea, el interactor no es adaptativo. Esto significa que la cadena no cambiará durante la interacción.
Después de imprimir cada acción del programa, incluye un salto de línea y vacía el flujo de salida. Si usas cout << ... << endl en C++, el flujo de salida se vacía automáticamente, por lo que no necesitas hacer nada más. Si usas otro método de salida, se recomienda vaciar el flujo de salida con fflush(stdout) o cout.flush(). Ten en cuenta que el salto de línea debe aparecer siempre.
Subtareas
Esta tarea está compuesta por subtareas.
Los puntos de una subtarea se otorgan solo si se aceptan todos los casos de esa subtarea.
| Subtarea | Puntos | Restricciones adicionales | Dependencias |
|---|---|---|---|
| La cadena oculta está ordenada en orden creciente. | |||
La cadena oculta tiene la misma cantidad de 0 y 1. |
|||
| Sin restricciones adicionales. |
Ejemplos
Entrada 1
2
1
0
2
Salida 1
? 01
? 11
? 00
! 00
Entrada 2
4
1
1
1
2
Salida 2
? 0000
? 1111
? 0011
? 0101
! 0101
Comments