@[kunkun_666](/user/966143)
可以简洁一点:
```cpp
#include<bits/stdc++.h>
using namespace std;
int n,m,s,f[100005],a[100005],i,x,k;bool fl[100005];
int main()
{
cin>>n>>m>>s;
for(i=1;i<=m;i++) cin>>f[i];
f[0]=0,f[m+1]=n;
for(i=0;i<=m+1;i++) if(f[i]-f[k]>=s&&fl[i]==0) k=i,a[x]=i,fl[i]=1,x++;
for(i=m+1;i>=0;i--) if(f[k]-f[i]>=s&&fl[i]==0) k=i,a[x]=i,fl[i]=1,x++;
if(x!=m+2) cout<<"NO\n",exit(0);
cout<<"YES\n";
for(i=0;i<=x-1;i++) cout<<a[i]<<' ';
return 0;
}
```
按照你的加我的码风打的。
by _zhx @ 2023-11-25 15:38:13