4-SAT P37529


Statement
 

pdf   zip

El conocido problema 4-SAT consiste en lo siguiente: Tenemos mm variables booleanas (sólo pueden valer cierto o falso). Además, tenemos nn cláusulas, formadas cada una por cuatro variables, no necesariamente diferentes. Veamos un ejemplo de clásula:

x1x5¬x3x4\begin{equation*} x_1 \vee x_5 \vee \neg x_3 \vee x_4 \end{equation*}

El símbolo \vee es la OR booleana, y el símbolo ¬\neg es la NOT booleana. Así pues, la cláusula es falsa sólo si x1x_1, x5x_5 y x4x_4 son falsas, y x3x_3 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?

Entrada

La entrada tiene diversos casos. Cada uno empieza con nn y mm, seguidas de las nn claúsulas, codificadas con cuatro enteros entre m-m y mm, sin ningún cero. Una ii positiva indica xix_i, y una ii negativa indica ¬xi\neg x_i. Se garantiza que la entrada se ha generado de forma aleatoria.

Salida

Escribid una línea para cada caso. Si no existe solución, escribid “WA”. Si existe, escribid mm 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.

Puntuación

  • Test1:   Casos donde n10n \le 10, m4m \le 4 y se garantiza que existe solución.

  • Test2:   Casos donde n105n \le 10^5 y 100m104100 \le m \le 10^4.

Public test cases
  • 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
    
  • Information
    Author
    Alex Alvarez Ruiz
    Language
    Spanish
    Official solutions
    C++
    User solutions