题解:
题目大意是说b[i]=a[i]+a[n-i]的值,并且要保证是递增的,我们可以想,让左边的尽可能小,并且比右边的小,我们就可以去他左边的和右边较小的最大值即可,需要注意的是数据范围是 long long int型的
代码:
#include<bits/stdc++.h>
using namespace std
;
typedef long long ll
;
int main(){
int n
;
cin
>> n
;
ll k
;
ll a
[200005];
for(int i
= 0 ;i
< t
/2 ;i
++){
cin
>> k
;
if(t
== 0){
a
[0] = 0;
a
[n
-1] = k
;
}
else {
a
[i
] = max(a
[i
-1],min(a
[n
-i
],k
-a
[n
-i
]));
a
[n
-i
-1] = k
-a
[i
];
}
}
for(int i
= 0; i
< n
;i
++){
cout
<< a
[i
] << " ";
}
return 0;
}
转载请注明原文地址: https://yun.8miu.com/read-30968.html