QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#476322#997. 2-SAT 问题modinte#WA 35ms14780kbC++14978b2024-07-13 18:49:282024-07-13 18:49:28

Judging History

This is the latest submission verdict.

  • [2024-07-13 18:49:28]
  • Judged
  • Verdict: WA
  • Time: 35ms
  • Memory: 14780kb
  • [2024-07-13 18:49:28]
  • Submitted

answer

#include <bits/stdc++.h>
const int N = 2e5 + 5;
int n, m, dfc, dfn[N], low[N], top, stk[N], idx, bel[N];
bool inStk[N]; std::vector<int> ver[N];
void Tarjan(int u) {
  dfn[u] = low[u] = ++dfc, stk[++top] = u, inStk[u] = true;
  for (int v: ver[u])
    if (!dfn[v]) Tarjan(v), low[u] = std::min(low[u], low[v]);
    else if (inStk[v]) low[u] = std::min(low[u], dfn[v]);
  if (low[u] == dfn[u]) {
    ++idx; int t;
    do
      t = stk[top--], inStk[t] = false, bel[t] = idx;
    while (t != u);
  }
}
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 1, a, b, c, d; i <= m; ++i)
    scanf("%d%d%d%d", &a, &b, &c, &d),
    ver[a + (b ^ 1) * n].push_back(c + d * n),
    ver[c + (d ^ 1) * n].push_back(a + b * n);
  for (int i = 1; i <= 2 * n; ++i) if (!dfn[i]) Tarjan(i);
  for (int i = 1; i <= n; ++i)
    if (bel[i] == bel[i + n]) puts("No"), exit(0);
  puts("Yes");
  for (int i = 1; i <= n; ++i) printf("%d ", bel[i + n] > bel[i]);
  return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 0
Wrong Answer
time: 35ms
memory: 14780kb

input:

86354 86418
14615 0 14903 1
13605 0 4458 0
15604 0 77112 0
52311 1 64996 0
22711 1 74245 1
39042 1 57372 1
2994 1 84183 1
80574 0 58791 1
27780 1 9336 1
61809 0 7216 0
71113 0 42287 1
20073 0 72448 0
73840 0 77048 0
28955 0 4165 0
16322 1 14075 1
43512 0 58600 1
45219 0 53858 0
14919 0 22576 0
16594...

output:

Yes
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

result:

wrong answer Your plan didn't satisfy condition #1.(i = 14615, a = 0, j = 14903, b = 1)