variants——不同的版本,变体
beforehand——提前
heist——抢劫
indices——索引
distinct——清晰的
sake——目的,日本清酒
simplicity——简单
consecutive——持续的
# include <iostream>
# include <set>
using namespace std;
#define MAXN 200010
struct data{
int val,id;
bool operator<(const data d)const{
return val<d.val;
}
}x;
int n,m,d,pos[MAXN];
set<data> a;
int main(){
cin>>n>>m>>d;
for(int i=1;i<=n;++i){
cin>>x.val;
x.id=i;
a.insert(x);
}
int now=(*a.begin()).val,cnt=1;
pos[(*a.begin()).id]=1;
a.erase(a.begin());
for(int i=2;i<=n;++i){
data x;
x.val=now+d+1;
auto p=a.lower_bound(x);
if(p!=a.end()){
pos[(*p).id]=cnt;
now=(*p).val;
a.erase(p);
continue;
}
++cnt;
p=a.begin();
pos[(*p).id]=cnt;
now=(*p).val;
a.erase(p);
}
cout<<cnt<<endl;
for(int i=1;i<=n;++i)
cout << pos[i]<<" ";
}
辣鸡,容器都没用明白,代码是抄的,自己辣鸡没想出来,生词积累一下。