思路:本题要求构造一个a和b数组相加为不递减序列,并且b数组的极差为最小的b数组。
可以通过遍历a数组并且每次更新最大值,并使得b数组为这个·最大值和当前a值的差。
#include <bits/stdc++.h>
using namespace std;
#define int long long
int a[200010];
signed main()
{
int n;
cin>>n;
for (int i=1;i<=n;i++){
cin>>a[i];
}
int maxn=a[1];
for (int i=1;i<=n;i++){
maxn=max(maxn,a[i]);
cout<<maxn-a[i]<<" ";
}
}