比赛 EYOI常规赛 1st 评测结果 AAAAAAATTTAAAAAAAAAAAAAAA
题目名称 EYOI的成立 最终得分 88
用户昵称 ZRQ 运行时间 3.394 s
代码语言 C++ 内存使用 13.74 MiB
提交时间 2021-12-02 21:50:24
显示代码纯文本
#include<iostream>
#include<cstdio>
using namespace std;
int n,h[1000005],s[1000005],t[1000005],mx;
char ch;
inline void read(int &x){x=0;ch=getchar();while(ch<48||ch>57)ch=getchar();while(ch>=48&&ch<=57)x=(x<<3)+(x<<1)+(ch^48),ch=getchar();}
void add(int i)
{
	int k=i;
	while(i<=mx) t[i]=max(t[i],k),i+=i&(-i);
}
int ask(int i)
{
	int res=0;
	while(i>0) res=max(t[i],res),i-=i&(-i);
	return res;
}
int main()
{
	freopen("EYOI_found.in","r",stdin);
	freopen("EYOI_found.out","w",stdout);
	int a,ans;
	read(n);
	for(int i=1;i<=n;++i) read(h[i]),read(a),s[i]=h[i]+a,mx=max(mx,s[i]);
	for(int i=1;i<=n;++i)
	{
		printf("%d ",ask(s[i]-1));
		add(h[i]);
	}
	return 0;
}