El conocido problema 4-SAT consiste en lo siguiente: Tenemos variables booleanas (sólo pueden valer cierto o falso). Además, tenemos cláusulas, formadas cada una por cuatro variables, no necesariamente diferentes. Veamos un ejemplo de clásula:
El símbolo
es la OR booleana, y el símbolo
es la NOT booleana. Así pues, la cláusula es falsa sólo si
,
y
son falsas, y
es cierta.
El problema 4-SAT original pide asignar valores a las variables de manera que todas las cláusulas sean ciertas, o decir que no hay solución. Como ese problema es demasiado difícil, os pedimos una versión más sencilla: ¿Podéis encontrar una asignación tal que al menos el 90% de las cláusulas sean ciertas?
La entrada tiene diversos casos. Cada uno empieza con y , seguidas de las claúsulas, codificadas con cuatro enteros entre y , sin ningún cero. Una positiva indica , y una negativa indica . Se garantiza que la entrada se ha generado de forma aleatoria.
Escribid una línea para cada caso. Si no existe solución, escribid
“WA”. Si existe, escribid
caracteres
indicando el valor de las variables en orden: ‘0’ para
falso y ‘1’ para cierto. Si hay más de una posible
asignación, cualquiera sirve.
Test1: Casos donde , y se garantiza que existe solución.
Test2: Casos donde y .
Input
2 4 -2 3 -4 3 -2 1 2 -2 2 3 -2 -1 -2 1 2 2 -3 -1 5 3 1 2 2 2 1 3 3 3 -1 -2 -2 -2 -1 2 2 2 1 3 3 3 2 5 -4 -5 -5 -4 2 1 -2 -4 4 6 -4 2 -2 -3 -4 -6 1 -6 -3 -6 -1 -1 1 -2 -3 6
Output
1011 110 011 00000 101100