Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <cstdio>#include <vector>#include <algorithm>using namespace std;int const N = 2e5 + 10;vector <int> xs, cs;vector <pair<int,int> > seg;struct segmentTree {vector <int> color;segmentTree():color(N<<2, -1) {}void modify(int r, int L, int R, int a, int b, int c) {if (R < a || L > b || L > R) return;if (a <= L && R <= b) {color[r] = c;} else {int M = (L + R) >> 1, ls = r << 1, rs = ls | 1;if (color[r] != -1) {color[ls] = color[rs] = color[r];color[r] = -1;}modify(ls, L, M, a, b, c);modify(rs, M+1, R, a, b, c);if (color[ls] == color[rs]) color[r] = color[ls];else color[r] = -1;}}void query(int r, int L, int R) {if (color[r] != -1) {cs.push_back(color[r]);