Submission #865879

# Submission time Handle Problem Language Result Execution time Memory
865879 2023-10-25T01:59:35 Z NeroZein The Potion of Great Power (CEOI20_potion) C++17
Compilation error
0 ms 0 KB
#include "bits/stdc++.h"
using namespace std; 

#include "Deb.h"

const int S = 77;
const int MAX_N = 1e5 + 5; 

int n;
int h[MAX_N];

void init(int N, int D, int H[]) {
  n = N;
  for (int i = 0; i < N; ++i) {
    h[i] = H[i];
  }
}

set<int> f[MAX_N];
int a[MAX_N], b[MAX_N];
vector<int> chng[MAX_N];
vector<set<int>> st[MAX_N];

void edit(set<int>& se, int z) {
  if (se.count(z)) se.erase(z);
  else se.insert(z); 
}

void curseChanges(int U, int A[], int B[]) {
  for (int i = 1; i <= U; ++i) {
    a[i] = A[i - 1], b[i] = B[i - 1]; 
    if (a[i] > b[i]) swap(a[i], b[i]); 
  }
  for (int i = 0; i < n; ++i) {
    chng[i].push_back(0); 
    st[i].emplace_back(f[i]);
  }
  for (int i = 1; i <= U; ++i) {
    chng[a[i]].push_back(i);
    chng[b[i]].push_back(i);
    edit(f[a[i]], b[i]);
    edit(f[b[i]], a[i]);
    if (chng[a[i]].size() % S == 0) {
      st[a[i]].emplace_back(f[a[i]]);
    }
    if (chng[b[i]].size() % S == 0) {
      st[b[i]].emplace_back(f[b[i]]);
    }
  }
}

int get(set<int>& x, set<int>& y) {
  vector<int> cx, cy;
  for (auto i : x) cx.push_back(h[i]);
  for (auto i : y) cy.push_back(h[i]);
  sort(cx.begin(), cx.end());
  sort(cy.begin(), cy.end());
  int ret = 1e9;
  for (int i = 0, j = 0; i < (int) x.size() && j < (int) y.size(); ) {
    if (cx[i] <= cy[j]) {
      ret = min(ret, cy[j] - cx[i++]); 
    } else {
      ret = min(ret, cx[i] - cy[j++]); 
    }
  }
  return ret;
}

int question(int x, int y, int v) {
  int idx = upper_bound(chng[x].begin(), chng[x].end(), v) - chng[x].begin() - 1; 
  int idy = upper_bound(chng[y].begin(), chng[y].end(), v) - chng[y].begin() - 1; 
  int kx = idx - (idx % S), ky = idy - (idy % S); 
  auto sx = st[x][kx / S], sy = st[y][ky / S];
  for (int i = kx + 1; i <= idx; ++i) {
    int ind = chng[x][i];
    assert(a[ind] == x || b[ind] == x); 
    int o = a[ind] ^ b[ind] ^ x; 
    edit(sx, o); 
  }
  for (int i = ky + 1; i <= idy; ++i) {
    int ind = chng[y][i];
    int o = a[ind] ^ b[ind] ^ y;
    edit(sy, o); 
  }
  return get(sx, sy); 
}

Compilation message

potion.cpp:4:10: fatal error: Deb.h: No such file or directory
    4 | #include "Deb.h"
      |          ^~~~~~~
compilation terminated.