Submission #113729

#TimeUsernameProblemLanguageResultExecution timeMemory
113729MAMBAICC (CEOI16_icc)C++17
Compilation error
0 ms0 KiB
#include "icc.h" #include <bits/stdc++.h> using namespace std; constexpr int N = 110; int sz[N], par[N]; vector<int> vec[N]; set<int> st; int getPAr(int v) { if (par[v] == -1) return v; return getPar(par[v]); } inline void merge(int u , int v) { v = getPar(v); u = getPar(u); if (sz[v] > sz[u]) swap(v , u); for (auto e : h[v]) h[u].pb(e); h[v].clear(); par[v] = u; sz[u] += sz[v]; st.erase(v); } int a[N], b[N]; unordered_map<int , int> mp , arr; int ptr; inline void solve() { prt = 0; mp.clear(); arr.clear(); for (auto e : st) { arr[ptr] = e; mp[e] = ptr++; } int xor_ = 0; for (int i = 0; (1 << i) <= ptr; i++) { int size_a = 0; int size_b = 0; rep(j , 0 , ptr) { if ((j >> i) & 1) { for (auto e : h[arr[j]]) a[size_a++] = e; } else { for (auto e : h[arr[j]]) b[size_b++] = e; } } xor_ |= (query(size_a , size_b , a , b) ? (1 << i) : 0); } int now_a = 0, int now_b = 0; now_b |= 1 << __builtin_ctz(xor_); for (int i = 0; (1 << i) <= ptr; i++) { if (b & (1 << i)) continue; if ((xor_ >> i) & 1) { int size_a = 0; int size_b = 0; rep(j , 0 , ptr) { int must = ((1 << __builtin_ctz(xor_)) | ((1 << i) - 1)); if (j & must == nowa) { if ((j >> i) & 1) for (auto e : h[arr[j]]) a[size_a++] = e; } else if (j & must == nowb) { if ((j >> i) & 1) ; else for (auto e: h[arr[j]]) b[size_b++] = e; } } if (query(size_a , size_ , a , b)) now_a += (1 << i); else now_b += (1 << i); } else { int size_a = 0; int size_b = 0; rep(j , 0 , ptr) { int must = ((1 << __builtin_ctz(xor_)) | ((1 << i) - 1)); if (j & must == nowa) { if ((j >> i) & 1) for (auto e : h[arr[j]]) a[size_a++] = e; } else if (j & must == nowb) { if ((j >> i) & 1) for (auto e : h[arr[j]]) b[size_b++] = e; } } if (query(size_a , size_ , a , b)) { now_a += (1 << i); now_b += (1 << i); } } } now_a = arr[now_a]; now_b = arr[now_b]; int lo = 0, hi = h[now_a].size(); while (lo != hi - 1) { int mid = lo + hi >> 1; int size_a = 0; int size_b = 0; rep(i , 0 , mid) a[size_a++] = h[now_a][i]; for (auto e : h[now_b]) b[size_b++] = e; if (query(size_a , size_b , a , b)) hi = mid; else lo = mid; } int man = lo; lo = 0, hi = h[now_b].size(); while (lo != hi - 1) { int mid = lo + hi >> 1; a[0] = h[now_a][man]; rep(i , 0 , mid) b[i] = h[now_b][i]; if (query(1 , mid , a , b)); hi = mid; else lo = mid; } setRoad(h[now_a][man] , h[now_b][lo]); merge(h[now_a][man] , h[now_b][lo]); } void run(int n) { rep(i , 1 , n + 1) st.insert(i); rep(i , 0 , n) solve(); }

Compilation message (stderr)

icc.cpp: In function 'int getPAr(int)':
icc.cpp:14:9: error: 'getPar' was not declared in this scope
  return getPar(par[v]);
         ^~~~~~
icc.cpp:14:9: note: suggested alternative: 'getPAr'
  return getPar(par[v]);
         ^~~~~~
         getPAr
icc.cpp: In function 'void merge(int, int)':
icc.cpp:18:6: error: 'getPar' was not declared in this scope
  v = getPar(v);
      ^~~~~~
icc.cpp:18:6: note: suggested alternative: 'getPAr'
  v = getPar(v);
      ^~~~~~
      getPAr
icc.cpp:23:16: error: 'h' was not declared in this scope
  for (auto e : h[v])
                ^
icc.cpp:25:2: error: 'h' was not declared in this scope
  h[v].clear();
  ^
icc.cpp: In function 'void solve()':
icc.cpp:36:2: error: 'prt' was not declared in this scope
  prt = 0;
  ^~~
icc.cpp:47:7: error: 'j' was not declared in this scope
   rep(j , 0 , ptr) {
       ^
icc.cpp:47:3: error: 'rep' was not declared in this scope
   rep(j , 0 , ptr) {
   ^~~
icc.cpp:59:17: error: expected unqualified-id before 'int'
  int now_a = 0, int now_b = 0;
                 ^~~
icc.cpp:60:2: error: 'now_b' was not declared in this scope
  now_b |= 1 << __builtin_ctz(xor_);
  ^~~~~
icc.cpp:60:2: note: suggested alternative: 'now_a'
  now_b |= 1 << __builtin_ctz(xor_);
  ^~~~~
  now_a
icc.cpp:62:9: error: invalid operands of types 'int [110]' and 'int' to binary 'operator&'
   if (b & (1 << i)) continue;
       ~~^~~~~~~~~~
icc.cpp:66:8: error: 'j' was not declared in this scope
    rep(j , 0 , ptr) {
        ^
icc.cpp:66:4: error: 'rep' was not declared in this scope
    rep(j , 0 , ptr) {
    ^~~
icc.cpp:80:23: error: 'size_' was not declared in this scope
    if (query(size_a , size_ , a , b))
                       ^~~~~
icc.cpp:80:23: note: suggested alternative: 'size_b'
    if (query(size_a , size_ , a , b))
                       ^~~~~
                       size_b
icc.cpp:65:8: warning: unused variable 'size_b' [-Wunused-variable]
    int size_b = 0;
        ^~~~~~
icc.cpp:88:8: error: 'j' was not declared in this scope
    rep(j , 0 , ptr) {
        ^
icc.cpp:88:4: error: 'rep' was not declared in this scope
    rep(j , 0 , ptr) {
    ^~~
icc.cpp:101:23: error: 'size_' was not declared in this scope
    if (query(size_a , size_ , a , b)) {
                       ^~~~~
icc.cpp:101:23: note: suggested alternative: 'size_b'
    if (query(size_a , size_ , a , b)) {
                       ^~~~~
                       size_b
icc.cpp:87:8: warning: unused variable 'size_b' [-Wunused-variable]
    int size_b = 0;
        ^~~~~~
icc.cpp:110:20: error: 'h' was not declared in this scope
  int lo = 0,  hi = h[now_a].size();
                    ^
icc.cpp:110:20: note: suggested alternative: 'hi'
  int lo = 0,  hi = h[now_a].size();
                    ^
                    hi
icc.cpp:112:16: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   int mid = lo + hi >> 1;
             ~~~^~~~
icc.cpp:115:7: error: 'i' was not declared in this scope
   rep(i , 0 , mid)
       ^
icc.cpp:115:7: note: suggested alternative: 'hi'
   rep(i , 0 , mid)
       ^
       hi
icc.cpp:115:3: error: 'rep' was not declared in this scope
   rep(i , 0 , mid)
   ^~~
icc.cpp:128:16: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   int mid = lo + hi >> 1;
             ~~~^~~~
icc.cpp:130:7: error: 'i' was not declared in this scope
   rep(i , 0 , mid)
       ^
icc.cpp:130:7: note: suggested alternative: 'hi'
   rep(i , 0 , mid)
       ^
       hi
icc.cpp:130:3: error: 'rep' was not declared in this scope
   rep(i , 0 , mid)
   ^~~
icc.cpp:132:3: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
   if (query(1 , mid , a , b));
   ^~
icc.cpp:133:4: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
    hi = mid;
    ^~
icc.cpp:134:3: error: 'else' without a previous 'if'
   else
   ^~~~
icc.cpp: In function 'void run(int)':
icc.cpp:142:6: error: 'i' was not declared in this scope
  rep(i , 1 , n + 1)
      ^
icc.cpp:142:2: error: 'rep' was not declared in this scope
  rep(i , 1 , n + 1)
  ^~~