Submission #512902

#TimeUsernameProblemLanguageResultExecution timeMemory
512902MathMateWall (IOI14_wall)C++17
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; const int INF = 1e9 + 5; const int BASE = 1 << 21; struct Wierzcholek { int min_wartosc = -INF, max_wartosc = INF; }; vector <Wierzcholek> segtree(BASE << 1); void push(int v) { // mnozymy razy 2 int lewy_syn = v << 1; // mnozymy razy 2 i dodajemy 1 int prawy_syn = (v << 1) + 1; segtree[lewy_syn].max_wartosc = min(segtree[lewy_syn].max_wartosc, segtree[v].max_wartosc); segtree[lewy_syn].min_wartosc = max(segtree[lewy_syn].max_wartosc, segtree[v].min_wartosc); segtree[prawy_syn].max_wartosc = min(segtree[prawy_syn].max_wartosc, segtree[v].max_wartosc); segtree[prawy_syn].min_wartosc = max(segtree[prawy_syn].max_wartosc, segtree[v].min_wartosc); segtree[lewy_syn].min_wartosc = max(segtree[lewy_syn].min_wartosc, segtree[v].min_wartosc); segtree[lewy_syn].min_wartosc = min(segtree[lewy_syn].min_wartosc, segtree[v].max_wartosc); segtree[prawy_syn].min_wartosc = max(segtree[prawy_syn].min_wartosc, segtree[v].min_wartosc); segtree[prawy_syn].min_wartosc = min(segtree[prawy_syn].min_wartosc, segtree[v].max_wartosc); segtree[v].min_wartosc = -INF; segtree[v].max_wartosc = INF; } void update(int L, int R, int wartosc, int v = 1, int a = 1, int b = BASE) { if(b < L || a > R) { return; } if(L <= a && b <= R) { segtree[v].min_wartosc = min(segtree[v].min_wartosc, wartosc); segtree[v].max_wartosc = max(segtree[v].max_wartosc, wartosc); return; } push(v); int mid = (a + b) / 2; // mnozymy razy 2 int lewy_syn = v << 1; // mnozymy razy 2 i dodajemy 1 int prawy_syn = (v << 1) + 1; update(L, R, wartosc, lewy_syn, a, mid); update(L, R, wartosc, prawy_syn, mid + 1, b); } int query(int v) { v += BASE; int wynik = segtree[v].max_wartosc; return wynik; } void buildWall(int n, int t, vector <int>& operacje, vector <int>& L, vector <int>& R, vector <int>& wartosci, vector <int>& odpowiedzi) { for(int i = 0; i < t; i++) { update(L[i], R[i], wartosci[i]); } for(int i = 1; i < BASE; i++) { push(i); } for(int i = 0; i < n; i++) { odpowiedzi[i] = query(i); } }

Compilation message (stderr)

/usr/bin/ld: /tmp/ccyeEDks.o: in function `main':
grader.cpp:(.text.startup+0x133): undefined reference to `buildWall(int, int, int*, int*, int*, int*, int*)'
collect2: error: ld returned 1 exit status