求调,基础赛 #17 T3
  • 板块学术版
  • 楼主Eason_cyx大愚若智
  • 当前回复10
  • 已保存回复10
  • 发布时间2024/11/10 18:11
  • 上次更新2024/11/10 20:46:27
查看原帖
求调,基础赛 #17 T3
741244
Eason_cyx大愚若智楼主2024/11/10 18:11

rt,不知道为啥只有 1818 分。

#include <bits/stdc++.h>
#define int long long
using namespace std;
struct node {
	int x,id;
	bool operator < (const node& y) const {
		return x > y.x;
	}
} a[200005];
map<int,int> ans;
int cur[200005];
int aaaa[200005];
signed main() {
	int n,k; cin >> n >> k;
	for(int i = 1;i <= n;i++) cin >> a[i].x, a[i].id = i;
	bool ccc = true;
	for(int i = 1;i < n;i++) {
		if(a[i].x != a[i+1].x) ccc = false;
	}
	if(ccc) {
		for(int i = 1;i <= n;i++) {
			cout << "0 ";
		}
		cout << endl; return 0;
	}
	sort(a+1,a+n+1); int m = 0;
	for(int i = 1;i <= n;i++) {
		if(a[i].x != a[i-1].x) cur[++m] = a[i].x;
	}
	ans[cur[1]] = 0;
	int sum = (cur[1] > (cur[2] + k) ? 0 : 1);
	for(int i = 2;i < m;i++) {
		ans[cur[i]] = sum;
		sum += (cur[i] > (cur[i+1] + k) ? 0 : 1);
	}
	ans[cur[m]] = sum;
	for(int i = 1;i <= n;i++) aaaa[a[i].id] = ans[a[i].x];
	for(int i = 1;i <= n;i++) cout << aaaa[i] << ' ';
	return 0;
}

玄关

2024/11/10 18:11
加载中...