Submission #231736

# Submission time Handle Problem Language Result Execution time Memory
231736 2020-05-14T14:53:15 Z border Ball Machine (BOI13_ballmachine) C++14
13.254 / 100
238 ms 131076 KB
#include <bits/stdc++.h>
// #include <ext/pb_ds/assoc_container.hpp> // Common file
// #include <ext/pb_ds/tree_policy.hpp> // Including tree_order_statistics_node_update
 
using namespace std;
// using namespace __gnu_pbds;
 
#define debug(s) cerr << #s << " = " << s << '\n'
#define all(v) (v).begin(), (v).end()
#define mem(a,val) memset(a, val, sizeof a)
 
#define ff first
#define ss second
typedef long long ll;
 
// typedef tree<pair<int, int>,null_type,less<pair<int, int>>,rb_tree_tag,tree_order_statistics_node_update> ordered_set;
 
const int N = 100010;
 
int n, q, ptr, root;
int T[N], P[N][20], L[N], col[N], val[N], sub[N];
vector<int> adj[N];
set<pair<int, int>> s;
 
bool cmp(int A, int B) {
  return sub[A] < sub[B];
}
 
void dfs0(int from, int u) {
  sub[u] = u;
  for (auto v: adj[u]) {
    if (v == from) continue;
    dfs0(v, u);
    sub[u] = min(sub[u], sub[v]);
  }
  sort(all(adj[u]), cmp);
}
 
void dfs(int from, int u, int dep) {
  T[u] = from;
  L[u] = dep;
  for (auto v: adj[u]){
    if (v == from) continue;
    dfs(u, v, dep + 1);
  }
  val[u] = ptr;
  s.insert({ptr++, u});
}
 
void init() {
  int i, j;
  for (i = 1; i <= n; i++)
    P[i][0] = T[i];
  for (j = 1; j < 18; j++)
    for (i = 1; i <= n; i++)
        P[i][j] = P[P[i][j - 1]][j - 1];
}
 
 
int main() {
  scanf("%d %d", &n, &q);
  for (int i = 1; i <= n; ++i) {
    int x;
    scanf("%d", &x);
    if (x == 0) root = i;
    adj[x].push_back(i);
  }
  dfs0(-1, root);
  dfs(-1, root, 0);
  init();
  while (q--) {
    int ty, v;
    scanf("%d %d", &ty, &v);
    if (ty == 1) {
      int ret;
      while (v--) {
        int node = (*s.begin()).ss;
        col[node] = 1;
        ret = node;
        s.erase({val[node], node});
      }
      printf("%d\n", ret);
    }
    else {
      int ret = 0;
      for (int i = 16; i >= 0; --i) {
        if (col[P[v][i]]) {
          ret += (1 << i);
          v = P[v][i];
        }
      }
      col[v] = 0;
      s.insert({val[v], v});
      printf("%d\n", ret);
    }
  }
}

Compilation message

ballmachine.cpp: In function 'int main()':
ballmachine.cpp:61:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d %d", &n, &q);
   ~~~~~^~~~~~~~~~~~~~~~~
ballmachine.cpp:64:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d", &x);
     ~~~~~^~~~~~~~~~
ballmachine.cpp:73:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d %d", &ty, &v);
     ~~~~~^~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Runtime error 78 ms 131076 KB Execution killed with signal 9 (could be triggered by violating memory limits)
2 Runtime error 95 ms 131076 KB Execution killed with signal 9 (could be triggered by violating memory limits)
3 Runtime error 92 ms 131076 KB Execution killed with signal 9 (could be triggered by violating memory limits)
4 Runtime error 78 ms 131076 KB Execution killed with signal 9 (could be triggered by violating memory limits)
5 Runtime error 77 ms 131076 KB Execution killed with signal 9 (could be triggered by violating memory limits)
6 Runtime error 80 ms 131076 KB Execution killed with signal 9 (could be triggered by violating memory limits)
7 Runtime error 74 ms 131072 KB Execution killed with signal 9 (could be triggered by violating memory limits)
8 Runtime error 79 ms 131076 KB Execution killed with signal 9 (could be triggered by violating memory limits)
9 Runtime error 80 ms 131076 KB Execution killed with signal 9 (could be triggered by violating memory limits)
10 Runtime error 81 ms 131076 KB Execution killed with signal 9 (could be triggered by violating memory limits)
11 Runtime error 94 ms 131076 KB Execution killed with signal 9 (could be triggered by violating memory limits)
12 Runtime error 90 ms 131072 KB Execution killed with signal 9 (could be triggered by violating memory limits)
13 Runtime error 94 ms 131072 KB Execution killed with signal 9 (could be triggered by violating memory limits)
# Verdict Execution time Memory Grader output
1 Correct 47 ms 7544 KB Output is correct
2 Runtime error 97 ms 131072 KB Execution killed with signal 9 (could be triggered by violating memory limits)
3 Runtime error 96 ms 131072 KB Execution killed with signal 9 (could be triggered by violating memory limits)
4 Runtime error 83 ms 131076 KB Execution killed with signal 9 (could be triggered by violating memory limits)
5 Runtime error 85 ms 131076 KB Execution killed with signal 9 (could be triggered by violating memory limits)
6 Incorrect 79 ms 8956 KB Output isn't correct
7 Runtime error 81 ms 131076 KB Execution killed with signal 9 (could be triggered by violating memory limits)
8 Correct 46 ms 7544 KB Output is correct
9 Runtime error 101 ms 131076 KB Execution killed with signal 9 (could be triggered by violating memory limits)
10 Runtime error 105 ms 131076 KB Execution killed with signal 9 (could be triggered by violating memory limits)
11 Incorrect 162 ms 22876 KB Output isn't correct
12 Runtime error 105 ms 131072 KB Execution killed with signal 9 (could be triggered by violating memory limits)
13 Correct 123 ms 24952 KB Output is correct
14 Runtime error 100 ms 131076 KB Execution killed with signal 9 (could be triggered by violating memory limits)
# Verdict Execution time Memory Grader output
1 Runtime error 90 ms 131076 KB Execution killed with signal 9 (could be triggered by violating memory limits)
2 Runtime error 102 ms 131072 KB Execution killed with signal 9 (could be triggered by violating memory limits)
3 Correct 137 ms 23032 KB Output is correct
4 Runtime error 99 ms 131076 KB Execution killed with signal 9 (could be triggered by violating memory limits)
5 Runtime error 111 ms 131076 KB Execution killed with signal 9 (could be triggered by violating memory limits)
6 Runtime error 104 ms 131076 KB Execution killed with signal 9 (could be triggered by violating memory limits)
7 Runtime error 96 ms 131076 KB Execution killed with signal 9 (could be triggered by violating memory limits)
8 Correct 139 ms 23136 KB Output is correct
9 Runtime error 99 ms 131076 KB Execution killed with signal 9 (could be triggered by violating memory limits)
10 Incorrect 212 ms 23032 KB Output isn't correct
11 Incorrect 191 ms 23112 KB Output isn't correct
12 Runtime error 102 ms 131076 KB Execution killed with signal 9 (could be triggered by violating memory limits)
13 Incorrect 238 ms 28280 KB Output isn't correct
14 Runtime error 99 ms 131076 KB Execution killed with signal 9 (could be triggered by violating memory limits)
# Verdict Execution time Memory Grader output
1 Runtime error 104 ms 131076 KB Execution killed with signal 9 (could be triggered by violating memory limits)
2 Runtime error 109 ms 131076 KB Execution killed with signal 9 (could be triggered by violating memory limits)
3 Correct 135 ms 27680 KB Output is correct
4 Runtime error 108 ms 131076 KB Execution killed with signal 9 (could be triggered by violating memory limits)
5 Incorrect 214 ms 22956 KB Output isn't correct
6 Runtime error 109 ms 131076 KB Execution killed with signal 9 (could be triggered by violating memory limits)
7 Runtime error 119 ms 131076 KB Execution killed with signal 9 (could be triggered by violating memory limits)
8 Correct 158 ms 28132 KB Output is correct
9 Runtime error 109 ms 131076 KB Execution killed with signal 9 (could be triggered by violating memory limits)