제출 #1236166

#제출 시각아이디문제언어결과실행 시간메모리
1236166ssitaram벽 (IOI14_wall)C++20
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef long double ld;

void up(pair<int, int>& a, int b) {
	a.first = max(a.first, b);
	if (a.first > a.second) a.second = a.first;
}

void down(pair<int, int>& a, int b) {
	a.second = min(a.second, b);
	if (a.first > a.second) a.first = a.second;
}

struct segtree {
	int n;
	vector<pair<int, int>> range;

	segtree(int sz) {
		n = 1;
		while (n < sz) n *= 2;
		range.resize(2 * n - 1);
	}

	void prop(int node, int l, int r) {
		if (range[node] == make_pair(INT32_MIN, INT32_MAX)) {
			return;
		}
		if (r != l + 1) {
			up(range[node * 2 + 1], range[node].first);
			down(range[node * 2 + 1], range[node].second);
			up(range[node * 2 + 2], range[node].first);
			down(range[node * 2 + 2], range[node].second);
			range[node] = {INT32_MIN, INT32_MAX};
		}
	}

	void upd(int node, int l, int r, int a, int b, int h, bool u) {
		prop(node, l, r);
		if (r <= a || l >= b) return;
		if (a <= l && r <= b) {
			if (u) up(range[node], h);
			else down(range[node], h);
			return;
		}
		int m = (l + r) / 2;
		upd(node * 2 + 1, l, m, a, b, h, u);
		upd(node * 2 + 2, m, r, a, b, h, u);
	}

	void upd(int a, int b, int h, bool u) {
		upd(0, 0, n, a, b + 1, h, u);
	}

	void get(int node, int l, int r, vector<int>& v) {
		prop(node, l, r);
		if (r == l + 1) {
			v[l] = range[node].first;
			return;
		}
		int m = (l + r) / 2;
		get(node * 2 + 1, l, m, v);
		get(node * 2 + 2, m, r, v);
	}

	void get(vector<int>& v) {
		get(0, 0, n, v);
	}
};

int main() {
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	int n, q; cin >> n >> q;
	segtree st(n);
	while (q--) {
		int op, l, r, h; cin >> op >> l >> r >> h;
		st.upd(l, r, h, (op == 1));
	}
	vector<int> v(n);
	st.get(v);
	for (int i = 0; i < n; ++i) {
		cout << v[i] << '\n';
	}
	return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

/usr/bin/ld: /tmp/ccmwxST0.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccxTGhk1.o:wall.cpp:(.text.startup+0x0): first defined here
/usr/bin/ld: /tmp/ccmwxST0.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