求救,0分
查看原帖
求救,0分
374350
zzy080701楼主2020/8/23 11:29
#include <bits/stdc++.h>
using namespace std;
struct Node
{
	int xi;
	int yi;
	int wi;
};
bool cmp(Node a,Node b)
{
	if(a.xi>b.xi)return false;
	else if(a.xi==b.xi)
	{
		if(a.yi>b.yi)return false;
	}
	return true;
}
Node n[100001];
int maxn[100001],nb[100001];
int main()
{
	long int i,c,m,j;
	cin>>c>>m;
	for(i=1;i<=m;i++)
	{
		cin>>n[i].xi>>n[i].yi;
		n[i].wi=0;
	}
	for(i=1;i<=c;i++)maxn[i]=i;
	sort(n,n+m+1,cmp);
	j=1;
	for(i=1;i<=m;i++)
	{
		if(i!=1)
		{
			if(n[i].xi!=n[i-1].xi)j++;
		}
		if(n[i].xi<n[i].yi&&maxn[j]<n[i].yi)
		{
			maxn[j]=n[i].yi;
		}
	}
	for(i=1;i<=c;i++)
	{
		nb[i]=maxn[i];
		if(nb[i]<=c)
		{
			nb[i]=maxn[nb[i]];
		}
	}
	for(i=1;i<=c;i++)cout<<nb[i]<<" ";
 	return 0;
}
2020/8/23 11:29
加载中...