Submission #666705

#TimeUsernameProblemLanguageResultExecution timeMemory
666705MilosMilutinovicInside information (BOI21_servers)C++14
Compilation error
0 ms0 KiB
#inlude <bits/stdc++.h>

using namespace std;

int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  int n, q;
  cin >> n >> q;
  vector<pair<int, int>> g(n);
  vector<char> op(q);
  vector<int> x(q);
  vector<int> y(q);
  for (int i = 0; i < q; i++) {
    cin >> op[i];
    if (op[i] == 'S') {
      cin >> x[i] >> y[i];
      --x[i]; --y[i];
      g[x[i]].emplace_back(y[i], i);
      g[y[i]].emplace_back(x[i], i);
    }
    if (op[i] == 'Q') {
      cin >> x[i] >> y[i];
      --x[i]; --y[i];
    }
    if (op[i] == 'C') {
      cin >> x[i];
      --x[i];
    }
  }
  vector<int> qs(n);
  for (int i = 0; i < q; i++) {
    qs[x[i]].push_back(i);
  }
  for (int i = 0; i < n; i++) {
    sort(g[i].begin(), g[i].end(), [&](pair<int, int> a, pair<int, int> b) {
      return a.second > b.second;
    });
  }
  vector<bool> was(n);
  vector<int> sz(n);
  function<void(int, int)> Find_sz = [&](int v, int pv) {
    sz[v] = 1;
    for (auto& p : g[v]) {
      int to = p.first;
      if (!was[to] && to != pv) {
        Find_sz(to, v);
        sz[v] += sz[to];
      }
    }
  };
  function<int(int, int, int)> Find_cen = [&](int v, int pv, int n) {
    for (auto& p : g[v]) {
      int to = p.first;
      if (!was[to] && to != pv && sz[to] * 2 >= n) {
        return Find_cen(to, v, n);
      }
    }
    return v;
  };
  vector<int> qv;
  function<void(int, int, int, bool, bool)> Go = [&](int v, int pv, int prv_w, int fir, bool inc, bool dec) {
    if (dec) {
      for (auto& p : qs[v]) {
        ans[p] += Query(i) + (fir <= p);
      }
    }
    if (inc) {
      qv.push_back(prv_w);
    }
    for (auto& p : g[v]) {
      int to = p.first;
      int w = p.second;
      if (!was[to] && to != pv) {
        Go(to, v, w, fir, (inc & (w > prv_w)), (dec & (w < prv_w)));
      }
    }
  };
  function<void(int, int)> Decompose = [&](int v, int pv) {
    Find_sz(v, v);
    v = Find_cen(v, v);
    was[v] = true;
    vector<int> rv;
    for (auto& p : g[v]) {
      int to = p.first;
      int w = p.second;
      if (!was[to]) {
        Go(to, v, w, w, 1, 1);
        for (auto& p : qv) {
          Modify(p, +1);
          rv.push_back(p);
        }
      }
    }
    for (auto& p : qs[v]) {
      ans[p] += Query(p);
    }
    for (auto& p : rv) {
      Modify(p, -1);
    }
  };
  Decompose(0, 0);
  return 0;
}
// todo

Compilation message (stderr)

servers.cpp:1:2: error: invalid preprocessing directive #inlude; did you mean #include?
    1 | #inlude <bits/stdc++.h>
      |  ^~~~~~
      |  include
servers.cpp: In function 'int main()':
servers.cpp:6:3: error: 'ios' has not been declared
    6 |   ios::sync_with_stdio(false);
      |   ^~~
servers.cpp:7:3: error: 'cin' was not declared in this scope
    7 |   cin.tie(0);
      |   ^~~
servers.cpp:1:1: note: 'std::cin' is defined in header '<iostream>'; did you forget to '#include <iostream>'?
  +++ |+#include <iostream>
    1 | #inlude <bits/stdc++.h>
servers.cpp:10:3: error: 'vector' was not declared in this scope
   10 |   vector<pair<int, int>> g(n);
      |   ^~~~~~
servers.cpp:1:1: note: 'std::vector' is defined in header '<vector>'; did you forget to '#include <vector>'?
  +++ |+#include <vector>
    1 | #inlude <bits/stdc++.h>
servers.cpp:10:10: error: 'pair' was not declared in this scope
   10 |   vector<pair<int, int>> g(n);
      |          ^~~~
servers.cpp:1:1: note: 'std::pair' is defined in header '<utility>'; did you forget to '#include <utility>'?
  +++ |+#include <utility>
    1 | #inlude <bits/stdc++.h>
servers.cpp:10:15: error: expected primary-expression before 'int'
   10 |   vector<pair<int, int>> g(n);
      |               ^~~
servers.cpp:11:10: error: expected primary-expression before 'char'
   11 |   vector<char> op(q);
      |          ^~~~
servers.cpp:12:10: error: expected primary-expression before 'int'
   12 |   vector<int> x(q);
      |          ^~~
servers.cpp:13:10: error: expected primary-expression before 'int'
   13 |   vector<int> y(q);
      |          ^~~
servers.cpp:15:12: error: 'op' was not declared in this scope
   15 |     cin >> op[i];
      |            ^~
servers.cpp:17:14: error: 'x' was not declared in this scope
   17 |       cin >> x[i] >> y[i];
      |              ^
servers.cpp:17:22: error: 'y' was not declared in this scope
   17 |       cin >> x[i] >> y[i];
      |                      ^
servers.cpp:19:7: error: 'g' was not declared in this scope
   19 |       g[x[i]].emplace_back(y[i], i);
      |       ^
servers.cpp:23:14: error: 'x' was not declared in this scope
   23 |       cin >> x[i] >> y[i];
      |              ^
servers.cpp:23:22: error: 'y' was not declared in this scope
   23 |       cin >> x[i] >> y[i];
      |                      ^
servers.cpp:27:14: error: 'x' was not declared in this scope
   27 |       cin >> x[i];
      |              ^
servers.cpp:31:10: error: expected primary-expression before 'int'
   31 |   vector<int> qs(n);
      |          ^~~
servers.cpp:33:5: error: 'qs' was not declared in this scope; did you mean 'q'?
   33 |     qs[x[i]].push_back(i);
      |     ^~
      |     q
servers.cpp:33:8: error: 'x' was not declared in this scope
   33 |     qs[x[i]].push_back(i);
      |        ^
servers.cpp:36:10: error: 'g' was not declared in this scope
   36 |     sort(g[i].begin(), g[i].end(), [&](pair<int, int> a, pair<int, int> b) {
      |          ^
servers.cpp:36:40: error: 'pair' is not a type
   36 |     sort(g[i].begin(), g[i].end(), [&](pair<int, int> a, pair<int, int> b) {
      |                                        ^~~~
servers.cpp:36:44: error: expected ',' or '...' before '<' token
   36 |     sort(g[i].begin(), g[i].end(), [&](pair<int, int> a, pair<int, int> b) {
      |                                            ^
servers.cpp: In lambda function:
servers.cpp:37:14: error: 'a' was not declared in this scope
   37 |       return a.second > b.second;
      |              ^
servers.cpp:37:25: error: 'b' was not declared in this scope
   37 |       return a.second > b.second;
      |                         ^
servers.cpp: In function 'int main()':
servers.cpp:36:5: error: 'sort' was not declared in this scope; did you mean 'short'?
   36 |     sort(g[i].begin(), g[i].end(), [&](pair<int, int> a, pair<int, int> b) {
      |     ^~~~
      |     short
servers.cpp:40:10: error: expected primary-expression before 'bool'
   40 |   vector<bool> was(n);
      |          ^~~~
servers.cpp:41:10: error: expected primary-expression before 'int'
   41 |   vector<int> sz(n);
      |          ^~~
servers.cpp:42:3: error: 'function' was not declared in this scope
   42 |   function<void(int, int)> Find_sz = [&](int v, int pv) {
      |   ^~~~~~~~
servers.cpp:1:1: note: 'std::function' is defined in header '<functional>'; did you forget to '#include <functional>'?
  +++ |+#include <functional>
    1 | #inlude <bits/stdc++.h>
servers.cpp:42:25: error: expression list treated as compound expression in functional cast [-fpermissive]
   42 |   function<void(int, int)> Find_sz = [&](int v, int pv) {
      |                         ^
servers.cpp:42:12: error: expected primary-expression before 'void'
   42 |   function<void(int, int)> Find_sz = [&](int v, int pv) {
      |            ^~~~
servers.cpp:52:29: error: expression list treated as compound expression in functional cast [-fpermissive]
   52 |   function<int(int, int, int)> Find_cen = [&](int v, int pv, int n) {
      |                             ^
servers.cpp:52:12: error: expected primary-expression before 'int'
   52 |   function<int(int, int, int)> Find_cen = [&](int v, int pv, int n) {
      |            ^~~
servers.cpp:61:10: error: expected primary-expression before 'int'
   61 |   vector<int> qv;
      |          ^~~
servers.cpp:62:42: error: expression list treated as compound expression in functional cast [-fpermissive]
   62 |   function<void(int, int, int, bool, bool)> Go = [&](int v, int pv, int prv_w, int fir, bool inc, bool dec) {
      |                                          ^
servers.cpp:62:12: error: expected primary-expression before 'void'
   62 |   function<void(int, int, int, bool, bool)> Go = [&](int v, int pv, int prv_w, int fir, bool inc, bool dec) {
      |            ^~~~
servers.cpp:79:25: error: expression list treated as compound expression in functional cast [-fpermissive]
   79 |   function<void(int, int)> Decompose = [&](int v, int pv) {
      |                         ^
servers.cpp:79:12: error: expected primary-expression before 'void'
   79 |   function<void(int, int)> Decompose = [&](int v, int pv) {
      |            ^~~~
servers.cpp:102:3: error: 'Decompose' was not declared in this scope
  102 |   Decompose(0, 0);
      |   ^~~~~~~~~