WA 1个
查看原帖
WA 1个
768325
Herbie_ZHB楼主2023/8/4 11:06

//O(n^2)
#include<cstdio>
#include<algorithm>
#include<iostream>
using namespace std;
const int N=50010;
int n,s[N],k;
struct inf{
	int start,end,num,last;
}cow[N];
bool cmp(inf a,inf b){
	return a.start<b.start; 
}
bool cmp1(inf a,inf b){
	return a.last<b.last;
}
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		scanf("%d%d",&cow[i].start,&cow[i].end );
		cow[i].last=i;
	}sort(cow+1,cow+1+n,cmp);
	for(int i=1;i<=n;i++){
		bool f=0;
		for(int j=1;j<=k;j++){
			if(cow[i].start>=s[j]){
				s[j]=max(s[j],cow[i].end);
				cow[i].num=j;
				f=1;
			}
		}
		if(!f){
			s[++k]=cow[i].end;
			cow[i].num=k;
		}
	}
	printf("%d\n",k);
	sort(cow+1,cow+1+n,cmp1);
	for(int i=1;i<=n;i++){
		printf("%d\n",cow[i].num );
	}
	return 0;
} 

2023/8/4 11:06
加载中...