Submission #376034

# Submission time Handle Problem Language Result Execution time Memory
376034 2021-03-10T18:00:19 Z wind_reaper Game (IOI13_game) C++17
Compilation error
0 ms 0 KB
#include <bits/stdc++.h>
#include "game.h"
using namespace std;

struct SegmentTree{
	struct Node{
		int64_t val;
		Node *lc, *rc;

		Node() : val(0), lc(0), rc(0) {}
	};
	
	vector<Node> tree;

	Node* new_node(){
		tree.emplace_back();
		return &tree.back();
	}
	Node *root;
	int L, R;
	void init(int _L, int _R){
		this->L = _L;
		this->R = _R;
		root = new_node();
	}

	void update(int idx, int64_t val, Node* &node, int l, int r){
		if(r - l == 1){
			if(!node) node = new_node();
			node->val = val;
			return;
		}

		int mid = (l + r) >> 1;

		if(idx < mid) update(idx, val, node->lc, l, mid);
		else update(idx, val, node->rc, mid, r);

		node->val = __gcd((node->lc ? node->lc->val : 0), (node->rc ? node->rc->val : 0));
	}

	int64_t query(int l, int r, Node* &node, int lx, int rx){
		if(r <= lx || l >= rx || !node)
			return 0;
		if(l >= lx && r <= rx)
			return node->val;

		int mid = (lx + rx) >> 1;

		return __gcd(query(l, r, node->lc, lx, mid), query(l, r, node->rc, mid, rx));
	}

	void update(int idx, int64_t val){
		update(idx, val, root, L, R);
	}

	int64_t query(int l, int r){
		return query(l, r, root, L, R);
	}
};

vector<SegmentTree> T;

void update(int P, int Q, int64_t K){
	T[P].update(Q, K);
}

long long calculate(int P, int Q, int U, int V){
	int64_t res = 0;
	for(int i = P; i < U; i++){
		res = __gcd(res, T[i].query(Q, V+1));
	}
	return res;
}

void init(int R, int C){
	T.resize(R);
	for(int i = 0; i < R; i++){
		T[i].init(0, C);
	}
}

Compilation message

/tmp/ccUZAWcW.o: In function `main':
grader.c:(.text.startup+0x156): undefined reference to `update'
collect2: error: ld returned 1 exit status