16行的判断条件 注意是在答案数组进行判断, 我好傻 看了好久 才知道是ans[j]-m 而不是a[j]-m

#include<algorithm>
using namespace std;
const int N =1e6+7;
int n,m;
int a[1010];
int ans[1010];
int main(){
    cin>>n>>m;
    for(int i =0;i<n;i++){
        cin >> a[i];
    }
    for(int i =0;i<n;i++){
        ans[i]=a[i];
        sort(ans,ans+i);
        for(int j =0;j<i;j++){
            if(ans[i]>ans[j]-m && ans[i]<ans[j]+m){
                ans[i]=ans[j]+m;
            }
        }
        cout<<ans[i]<<" ";
    }
    return 0;
}