| Task: | 3SAT solver |
| Sender: | taige |
| Submission time: | 2020-09-19 15:20:21 +0300 |
| Language: | Python3 (PyPy3) |
| Status: | READY |
| Result: | TIME LIMIT EXCEEDED |
| test | verdict | time | |
|---|---|---|---|
| #1 | ACCEPTED | 0.05 s | details |
| #2 | ACCEPTED | 0.05 s | details |
| #3 | ACCEPTED | 0.05 s | details |
| #4 | ACCEPTED | 0.05 s | details |
| #5 | ACCEPTED | 0.05 s | details |
| #6 | TIME LIMIT EXCEEDED | -- | details |
| #7 | TIME LIMIT EXCEEDED | -- | details |
| #8 | TIME LIMIT EXCEEDED | -- | details |
| #9 | TIME LIMIT EXCEEDED | -- | details |
| #10 | TIME LIMIT EXCEEDED | -- | details |
| #11 | TIME LIMIT EXCEEDED | -- | details |
| #12 | TIME LIMIT EXCEEDED | -- | details |
| #13 | TIME LIMIT EXCEEDED | -- | details |
| #14 | TIME LIMIT EXCEEDED | -- | details |
| #15 | TIME LIMIT EXCEEDED | -- | details |
| #16 | TIME LIMIT EXCEEDED | -- | details |
Code
from itertools import product
def main():
first_line = input().split()
n, var_num = int(first_line[-1]), int(first_line[-2])
final = []
for i in range(n):
line = [int(x) for x in input()[:-2].split()]
line = ["var[" + str(x - 1) + "]" if x >
0 else "(not var[" + str(- x - 1) + "])" for x in line]
final.append("(" + " or ".join(line) + ")")
final_logic = " and ".join(final)
l = [True, False]
for var in product(l, repeat=var_num):
if eval(final_logic):
print("s SATISFIABLE")
print("v", end="")
for i in range(1, var_num + 1):
print(" " + str(i) if var[i - 1] else " -" + str(i), end="")
print(" 0")
break
def main2():
first_line = input().split()
n, var_num = int(first_line[-1]), int(first_line[-2])
possibleValue = dict()
for i in range(1, var_num+1):
possibleValue[i] = [True, False]
for i in range(n):
line = [int(x) for x in input()[:-2].split()]
for x in line:
if x < 0:
if possibleValue[-x] == [True]:
possibleValue[-x] = []
else:
possibleValue[-x] = [False]
else:
if possibleValue[x] == [False]:
possibleValue[x] = []
else:
possibleValue[x] = [True]
print(possibleValue)
main()
#
#[(False, False, False), (False, False, True), (False, True, False), (False, True, True), (True, False, False), (True, False, True), (True, True, False), (True, True, True)]
Test details
Test 1
Verdict: ACCEPTED
| input |
|---|
| p cnf 3 3 -2 3 -1 0 2 3 1 0 -1 -2 -3 0 |
| correct output |
|---|
| (empty) |
| user output |
|---|
| s SATISFIABLE v 1 -2 3 0 |
Test 2
Verdict: ACCEPTED
| input |
|---|
| p cnf 3 3 1 -3 -2 0 1 2 3 0 -1 3 -2 0 |
| correct output |
|---|
| (empty) |
| user output |
|---|
| s SATISFIABLE v 1 2 3 0 |
Test 3
Verdict: ACCEPTED
| input |
|---|
| p cnf 5 5 3 -1 -5 0 2 4 1 0 3 -4 5 0 -5 -4 2 0 ... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| s SATISFIABLE v 1 2 -3 -4 -5 0 |
Test 4
Verdict: ACCEPTED
| input |
|---|
| p cnf 8 5 4 -5 3 0 -5 -2 -4 0 8 -1 2 0 -3 5 6 0 ... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| s SATISFIABLE v 1 2 3 4 -5 6 7 8 0 |
Test 5
Verdict: ACCEPTED
| input |
|---|
| p cnf 10 10 5 9 3 0 3 7 4 0 -10 2 -1 0 -6 4 2 0 ... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| s SATISFIABLE v 1 2 3 4 5 6 7 8 9 -10 0 |
Test 6
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| p cnf 1000 1000 218 -786 362 0 917 -477 -142 0 -371 701 -71 0 376 -524 -131 0 ... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| (empty) |
Test 7
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| p cnf 1000 1000 -347 913 411 0 -636 -948 -23 0 262 584 -137 0 -832 627 -775 0 ... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| (empty) |
Test 8
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| p cnf 1000 1000 18 556 -650 0 353 33 -765 0 573 -401 -81 0 903 -727 -81 0 ... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| (empty) |
Test 9
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| p cnf 10000 1000 9123 -904 -9430 0 8097 -9174 8218 0 4006 6631 -6981 0 -9882 -8579 114 0 ... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| (empty) |
Test 10
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| p cnf 10000 10000 -5406 13 3055 0 9649 -4669 2543 0 9573 70 6642 0 -7247 -7063 -3679 0 ... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| (empty) |
Test 11
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| p cnf 10000 10000 1046 386 -9246 0 -8809 -7155 -3610 0 -756 1484 8757 0 5954 485 -3403 0 ... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| (empty) |
Test 12
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| p cnf 10000 10000 905 9130 -2491 0 5382 -8040 6550 0 409 -1140 5181 0 -7597 6500 8010 0 ... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| (empty) |
Test 13
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| p cnf 100 100 44 -24 -54 0 35 11 51 0 -79 -91 -26 0 -69 63 -64 0 ... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| (empty) |
Test 14
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| p cnf 1000 1000 644 -384 -491 0 603 -228 866 0 -149 173 413 0 -954 -456 -883 0 ... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| (empty) |
Test 15
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| p cnf 10000 10000 4889 -6889 246 0 -1046 431 -4659 0 1064 9683 2950 0 5140 -2131 -2105 0 ... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| (empty) |
Test 16
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| p cnf 100000 10000 -97152 27630 29913 0 -41365 41432 26220 0 -66537 -46395 -83221 0 62364 -79006 -76860 0 ... |
| correct output |
|---|
| (empty) |
| user output |
|---|
| (empty) |
