#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<memory.h>
using namespace std;
bool find(int a[],int x,int y,int z);
void quicksort(int a[],int x,int y);
int b[50001];
int main(){
int i=0,j=0,k=0,km=0,a[50001],n,max=0,c[100001],t;
cout<<"请输入玩家人数:";
cin>>n;
for(i=0;i<n;i++) {
cin>>a[i];
c[i]=a[i];
system("cls");
b[i]=i+1;
}
quicksort(a,0,n-1);
for(i=0;i<n-2;i++){
for(j=n-1;j>=i+2;j--){
k=a[i]-a[j];
km=find(a,i+1,j-1,k);
if (km>0){km=b[i] ;break;}
}
if(km>0)break;
}
cout<<km<<endl;
for(i=0;i<n;i++)cout<<c[i]<<" ";
return 0;
}
bool find(int a[],int x,int y,int z){
int m=(x+y)/2;
if(x>y) return 0;
else{
if(a[m]==z) return m;
if(z>a[m]) return find(a,x,m-1,z);
if(z<a[m]) return find(a,m+1,y,z);
}
}
void quicksort(int a[],int x,int y){
if(x>=y) return;
int i=x,j=y,k=a[(i+j)/2];
while(i<j){
while(a[i]>k) i++;
while(a[j]<k) j--;
if(i<=j){
int k=a[i];
a[i]=a[j];
a[j]=k;
k=b[i];
b[i]=b[j];
b[j]=k;
i++;
j--;
}
}
if(x<j) quicksort(a,x,j);
if(i<y) quicksort(a,i,y);
}
( ) |