比赛 EYOI常规赛 1st 评测结果 AWWWWTAAAAWWWWWWWWWWWWATT
题目名称 EYOI的成立 最终得分 24
用户昵称 nick 运行时间 5.630 s
代码语言 C++ 内存使用 28.65 MiB
提交时间 2021-12-02 21:17:31
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
struct node
{
	int b,h,s,e;
}f[1001000];
struct noode
{
	int bi,ji;
}g[1001000];
bool cmp(node x,node y)
{
	return x.b<y.b;
}
bool cmp1(node x,node y)
{
	return x.s<y.s;
}
int n,sr;
int main()
{
	freopen("EYOI_found.in","r",stdin);
	freopen("EYOI_found.out","w",stdout); 
    cin>>n;
    for(int i=1;i<=n;i++)
    {
    	cin>>f[i].h>>f[i].s;
    	f[i].s+=f[i].h;
    	f[i].b=i;
    	if(!g[f[i].h].ji)
		{
			g[f[i].h].ji=1;
			g[f[i].h].bi=i;
		}
	}
	sort(f+1,f+n+1,cmp1);
	for(int i=2;i<=n;i++)
	{
		for(int j=f[i].s-1;j>=1;j--)
		{
			if(g[j].ji==1&&g[j].bi<f[i].b)
			{
				f[i].e=j;
				break;
			}
		}
	}
	sort(f+1,f+n+1,cmp);
	for(int i=1;i<=n;i++)
		cout<<f[i].e<<" ";
	return 0;
}