B. Sorted Adjacent Differences1200 / 思维 构造
Posted 幽殇默
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了B. Sorted Adjacent Differences1200 / 思维 构造相关的知识,希望对你有一定的参考价值。
https://codeforces.com/problemset/problem/1339/B
排序后从中间,螺旋式走即可,注意区分数组个数的奇偶。
证明: abs(a[i]-a[i+1]) < abs(a[i-1]+a[i+1])
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int a[N],ans[N],n,t;
int main(void)
cin>>t;
while(t--)
cin>>n;
for(int i=0;i<n;i++) cin>>a[i];
sort(a,a+n);
int i=0,index=n/2;
if(n%2==0) index--;
ans[i++]=a[index];
bool flag=1;
for(int i=1;i<=n-1;i++)
if(flag)
index+=i;
ans[i]=a[index];
flag=0;
else
index-=i;
ans[i]=a[index];
flag=1;
for(int i=0;i<n;i++) cout<<ans[i]<<" ";
cout<<endl;
return 0;
以上是关于B. Sorted Adjacent Differences1200 / 思维 构造的主要内容,如果未能解决你的问题,请参考以下文章
5.26 Vj A - Sorted Adjacent Differences
5.26 Vj A - Sorted Adjacent Differences