国庆day2T1RE

#include<bits/stdc++.h>
using namespace std;
map<long long, long long> t;
long long n, m;
const long long mn = 4;
inline long long query(long long l, long long r, long long p = 1, long long pl = 1, long long pr = mn) {
//	printf("que%d~%d,p=%d,lp=%d,rp=%d;\n", l, r, p, pl, pr);
	if (pl > r || pr < l)return 0;
	if (l <= pl && pr <= r) {
//		cout << pl << ' ' << pr << ' ' << t[p] << endl;
		return t[p];
	}
  if( pl > pr) return 0;
	long long m = (pl + pr) >> 1;
	return query(l, r, p << 1, pl, m) +
	       query(l, r, p << 1 | 1, m + 1, pr);
}
inline long long ins(long long l, long long r, long long p = 1, long long pl = 1, long long pr = mn) {
	if(t[p] == (pr - pl + 1)) return t[p];
//	printf("ins%d~%d,p=%d,lp=%d,rp=%d;\n", l, r, p, pl, pr);
	if (pl > r || pr < l)return t[p];
	if (l <= pl && pr <= r) {
		t[p] = pr - pl + 1;
		return t[p];
	}
	if(pl == pr) return t[p];
	long long m = (pl + pr) >> 1;
	t[p] = ins(l, r, p << 1, pl, m) +
	       ins(l, r, p << 1 | 1, m + 1, pr);
//	if(p == 1)cout << endl << query(1,mn) << endl; 
}
int main() {
	// freopen("interval.in", "r", stdin);
	// freopen("interval.out", "w", stdout);
	t.clear();
	cin >> n >> m;
	long long l, r, tl, tr;
	cin >> l >> r;
	bool flag = true;
	while (--n) {
		if (m == 0 && flag) {
			if (l <= r)ins(l, r);
			flag = false;
		}
		cin >> tl >> tr;
		if (l > r) {
			l = tl;
			r = tr;
		}
		if (m) {
			l = max(tl, l);
			r = min(tr, r); 
			m--;
		} else ins(tl, tr);
	}
	cout << query(1, mn);
	return 0;
}
/*
3 1
1 2
2 3
3 4
*/

你RE标签搞CE干啥

因为他脑子CE了QWQ

sorry我的问题,没配置bitsstdc++, 你的ins可能会没有返回值