Submission #41814075


Source Code Expand

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using pii = pair<int, int>;
using pll = pair<ll, ll>;
using ull = unsigned long long;

// mt19937 rnd(chrono::steady_clock::now().time_since_epoch().count());
mt19937 rnd(0);
int rd(int l, int r) {return rnd() % (r - l + 1);}

constexpr int mod = 998244353;
void addt(int &x, int y) {x += y, x >= mod && (x -= mod);}
int add(int x, int y) {return x += y, x >= mod && (x -= mod), x;}
int ksm(int a, int b) {
  int s = 1;
  while(b) {
    if(b & 1) s = 1ll * s * a % mod;
    a = 1ll * a * a % mod, b >>= 1;
  }
  return s;
}

constexpr int Z = 1e5 + 5;
int fc[Z], ifc[Z];
int bin(int n, int m) {
  if(n < m) return 0;
  return 1ll * fc[n] * ifc[m] % mod * ifc[n - m] % mod;
}
void init_fac(int Z) {
  for(int i = fc[0] = 1; i < Z; i++) fc[i] = 1ll * fc[i - 1] * i % mod;
  ifc[Z - 1] = ksm(fc[Z - 1], mod - 2);
  for(int i = Z - 2; ~i; i--) ifc[i] = 1ll * ifc[i + 1] * (i + 1) % mod;
}

bool Mbe;
constexpr int N = 1e5 + 5;
constexpr int M = N * 6 + 5;

int n, f[N];
vector<int> e[N];
int cnt, hd[N], nxt[M], to[M];
void adde(int u, int v) {
  nxt[++cnt] = hd[u], hd[u] = cnt, to[cnt] = v;
}

int dfn[N], low[N], dn, stc[N], top, vis[N], col[N], cn;
void tarjan(int id) {
  dfn[id] = low[id] = ++dn;
  stc[++top] = id, vis[id] = 1;
  for(int i = hd[id]; i; i = nxt[i]) {
    int it = to[i];
    if(!dfn[it]) {
      tarjan(it);
      low[id] = min(low[id], low[it]);
    }
    else if(vis[it]) low[id] = min(low[id], dfn[it]);
  }
  if(dfn[id] == low[id]) {
    cn++;
    for(int x = 0; x != id; ) {
      x = stc[top--];
      vis[x] = 0, col[x] = cn;
    }
  }
}

void solve() {
  cin >> n;
  for(int i = 1; i <= n; i++) e[i].clear();
  for(int i = 1; i <= n * 3 / 2; i++) {
    int a, b;
    cin >> a >> b;
    e[a].push_back(b);
    e[b].push_back(a);
  }
  while(1) {
    for(int i = 1; i <= n; i++) f[i] = rnd() & 1;
    memset(hd, 0, N << 2), cnt = 0;
    for(int i = 1; i <= n; i++) {
      int u = e[i][0], v = e[i][1], w = e[i][2];
      if(f[i]) {
        adde(u, v + n);
        adde(u, w + n);
        adde(v, u + n);
        adde(v, w + n);
        adde(w, u + n);
        adde(w, v + n);
      }
      else {
        adde(u + n, v);
        adde(u + n, w);
        adde(v + n, u);
        adde(v + n, w);
        adde(w + n, u);
        adde(w + n, v);
      }
    }
    memset(dfn, 0, N << 2), dn = cn = 0;
    for(int i = 1; i <= n + n; i++) if(!dfn[i]) tarjan(i);
    for(int i = 1; i <= n; i++) {
      if(col[i] != col[i + n]) continue;
      for(int j = 1; j <= n; j++) cout << (f[j] ? 'B' : 'W');
      cout << "\n";
      return;
    }
  }
}

bool Med;
int main() {
  fprintf(stderr, "%.3lf MB\n", (&Mbe - &Med) / 1048576.0);
  ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  int T = 1;
  cin >> T;
  while(T--) solve();
  cerr << 1e3 * clock() / CLOCKS_PER_SEC << " ms\n";
  return 0;
}

Submission Info

Submission Time
Task E - Not Dyed by Majority (Cubic Graph)
User Alex_Wei
Language C++ (GCC 9.2.1)
Score 800
Code Size 2999 Byte
Status AC
Exec Time 216 ms
Memory 14760 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 800 / 800
Status
AC × 1
AC × 31
Set Name Test Cases
Sample 00-sample-001.txt
All 00-sample-001.txt, 01-001.txt, 01-002.txt, 01-003.txt, 01-004.txt, 01-005.txt, 01-006.txt, 01-007.txt, 01-008.txt, 01-009.txt, 01-010.txt, 01-011.txt, 01-012.txt, 01-013.txt, 01-014.txt, 01-015.txt, 01-016.txt, 01-017.txt, 01-018.txt, 01-019.txt, 01-020.txt, 01-021.txt, 01-022.txt, 01-023.txt, 01-024.txt, 01-025.txt, 01-026.txt, 01-027.txt, 01-028.txt, 01-029.txt, 01-030.txt
Case Name Status Exec Time Memory
00-sample-001.txt AC 9 ms 6760 KiB
01-001.txt AC 216 ms 6772 KiB
01-002.txt AC 166 ms 6912 KiB
01-003.txt AC 141 ms 6836 KiB
01-004.txt AC 144 ms 6868 KiB
01-005.txt AC 101 ms 6908 KiB
01-006.txt AC 105 ms 6868 KiB
01-007.txt AC 72 ms 6876 KiB
01-008.txt AC 51 ms 6788 KiB
01-009.txt AC 40 ms 6924 KiB
01-010.txt AC 30 ms 6936 KiB
01-011.txt AC 30 ms 7660 KiB
01-012.txt AC 106 ms 6836 KiB
01-013.txt AC 36 ms 6784 KiB
01-014.txt AC 28 ms 7036 KiB
01-015.txt AC 97 ms 6892 KiB
01-016.txt AC 39 ms 6884 KiB
01-017.txt AC 31 ms 7024 KiB
01-018.txt AC 103 ms 6792 KiB
01-019.txt AC 39 ms 6896 KiB
01-020.txt AC 29 ms 6988 KiB
01-021.txt AC 46 ms 14704 KiB
01-022.txt AC 45 ms 14704 KiB
01-023.txt AC 46 ms 14632 KiB
01-024.txt AC 46 ms 14692 KiB
01-025.txt AC 48 ms 14736 KiB
01-026.txt AC 45 ms 14760 KiB
01-027.txt AC 69 ms 7620 KiB
01-028.txt AC 73 ms 7660 KiB
01-029.txt AC 57 ms 7696 KiB
01-030.txt AC 61 ms 7672 KiB