求助
  • 板块CF920B Tea Queue
  • 楼主bladeABC
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/11/4 17:16
  • 上次更新2023/11/4 19:28:50
查看原帖
求助
1098609
bladeABC楼主2023/11/4 17:16
#include<bits/stdc++.h>
#include<vector>
using namespace std;
#define ull long long ;
struct node {
	ull r;
	ull id;
	bool operator<(const node& h) const {
		return id < h.id;
	}
};
vector<node>v[5010];
int ans[5010];
void solve() {
	for (int i = 0; i <= 5000; i++)v[i].clear();
	ull n;
	cin >> n;
	for (int i = 1; i <= n; i++) {
		int l, r;
		cin >> l >> r;
		v[l].push_back({ r,i });
	}
	for (int i = 0; i <= 5000; i++) {
		sort(v[i].begin(), v[i].end());
	}
	deque<node>q;
	for (int i = 1; i <= 5000; i++) {
		for (int j = 0; j < v[i].size(); j++) {
			q.push_back(v[i][j]);
		}
		while (q.size() && q.front().r < i) {
			ans[q.front().id] = 0;
			q.pop_front();
		}
		if (q.size()) {
			ans[q.front().id] = i;
			q.pop_front();
		}

	}
	for (int i = 1; i <= n; i++) {
		cout << ans[i];
	}cout << endl;
}
signed main() {
	ull t;
	cin >> t;
	while (t--) {
		solve();
	}
}
2023/11/4 17:16
加载中...