#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int> pii;
const int N=50010;
pair<pii,int> cows[N];
priority_queue<pii,vector<pii>,greater<pii>> d;
int n;
int id[N];
int main(){
cin>>n;
for(int i=1;i<=n;i++){
int a,b;
cin>>a>>b;
cows[i].first.first=a;
cows[i].first.second=b;
cows[i].second=i;
}
sort(cows+1,cows+n+1,[](const auto&a,const auto &b){
return a.first.first<b.first.first;
});
for(int i=1;i<=n;i++){
if(d.empty()||d.top().first>=cows[i].first.first){
pii t={cows[i].first.second,d.size()+1};
d.push(t);
id[cows[i].second]=d.size();
}
else{
auto t=d.top();
d.pop();
t.first=cows[i].first.second;
d.push(t);
id[cows[i].second]=t.second;
}
}
cout<<d.size()<<endl;
for(int i=1;i<=n;i++){
cout<<id[i]<<endl;
}
return 0;
}
Acwing111. 畜栏预定(贪心)
最新推荐文章于 2025-05-16 13:26:14 发布