#include <iostream>
#include <vector>
#include <string>
#include <set>
#include <stack>
#include <deque>
#include <cmath>
#include <algorithm>
using namespace std;
#define MAX_N 50000
struct Node {
int l, r, id;
}arr[MAX_N];
int n, cnt = 0;
int ans[MAX_N + 5], tim[MAX_N + 5];
int main() {
cin >> n;
for (int i = 0; i < n; i++) {
cin >> arr[i].l >> arr[i].r;
arr[i].id = i;
}
sort(arr, arr + n, [&](Node a, Node b) -> bool {
if (a.l != b.l) return a.l < b.l;
return a.id < b.id;
});
for (int i = 0; i < n; i++) {
int pos = -1;
for (int j = 0; j < cnt; j++) {
if (tim[j] < arr[i].l) {
pos = j;
break;
}
}
if (pos == -1) pos = cnt++;
tim[pos] = arr[i].r;
ans[arr[i].id] = pos + 1;
}
cout << cnt << endl;
for (int i = 0; i < n; i++) {
cout << ans[i] << endl;
}
return 0;
}
HZOJ-254:挤奶
最新推荐文章于 2024-08-04 22:43:03 发布