| #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);
 }
 
 
 (  )
 |