题目描述
blablabla
样例
#include<iostream>
#include<algorithm>
using namespace std;
const int N=100010;
int a[N],b[N];
int n;
int main(){
//用户输入
cin>>n;
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
b[i]=a[i];
}
//排序找中位数
sort(b,b+n);
int m=n/2,p=0,k=m;
//找出向哪里偏移
if(n%2==0){
p=1;
}
while(b[k-1]&&b[k]==b[k-1]){
k--;
p--;
}
k=m;
while(b[k+1]&&b[k]==b[k+1]){
k++;
p++;
}
//输出
for(int i=0;i<n;i++){
if(p<0&&a[i]<=b[m]||p==0&&a[i]<b[m]){
cout<<b[m]-a[i]+1<<" ";
}else if(p>=0&&a[i]<=b[m]){
cout<<b[m]-a[i]<<" ";
}else{
cout<<"0 ";
}
}
}
算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla