比赛 EYOI常规赛 1st 评测结果 AAAAAAAAAAAAAAAAAAAAAAAAA
题目名称 EYOI的成立 最终得分 100
用户昵称 HeSn 运行时间 0.690 s
代码语言 C++ 内存使用 7.76 MiB
提交时间 2021-12-15 20:22:55
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int f[1000010] = {0}, n;
int lowbit(int x) {
	return x & -x;
}
int ask(int x) {
	int s = 0;
	while(x > 0) {
		s = max(f[x], s);
		x -= lowbit(x);
	}
	return s;
}
int add(int x) {
	int p = x;
	while(x <= 1000000) {
		f[x] = max(p, f[x]);
		x += lowbit(x);
	}
	return 0;
}
int main() {
    freopen("EYOI_found.in", "r", stdin);
    freopen("EYOI_found.out", "w", stdout);
    ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin >> n;
	for(int i = 1; i <= n; i ++) {
		int x, y;
		cin >> x >> y;
		cout << ask(x + y - 1) << ' ';
		if(x) {
			add(x);
		}
	}
	return 0;
}