Dato je skup od \(n\) jednačina
oblika a == b
ili a != b
. Ispitati da li je
taj skup jednačina zadovoljiv ili nije. Skup jednačina je
zadovoljiv ukoliko je moguće dodeliti vrednosti promenljivama
tako da sve jednačine budu zadovoljene. Ukoliko takva dodela ne postoji,
onda je skup jednačina nezadovoljiv.
Sa standardnog ulaza se učitava ceo broj \(n\) (\(1 \leq n
\leq 350\)), a zatim i \(n\)
jednačina oblika <var1> == <var2>
ili
<var1> != <var2>
. Ime promenljive
<var>
je iz skupa malih slova engleske abecede \(\{a, b, \ldots, z\}\) (\(|\{a, b, \ldots, z\}| = 26\)).
Na standardni izlaz ispisati SAT
ukoliko je skup
jednačina zadovoljiv, inače ispisati UNSAT
.
3 a == b b == c a != c
UNSAT
Iz prve dve jednačine \(a\), \(b\) i \(c\) moraju uzeti istu vrednost. Tada nije zadovoljena poslednja jednačina \(a != c\).
4 a == b b == c a == c d != e
SAT
Iz prve tri jednačine \(a\), \(b\) i \(c\) moraju uzeti istu vrednost. Iz poslednje jednačine \(d\) i \(e\) moraju biti različiti. Zbog toga postoji dodela tako da su sve jednačine zadovoljene. Na primer, to može biti \(a := 1\), \(b := 1\), \(c := 1\), \(d := 2\) i \(e := 3\).
#include <iostream>
using namespace std;
int main()
{
return 0;
}