# -*- coding: utf-8 -*-
"""
Created on Tue Sep 15 19:02:55 2020
@author:
"""
#递增排序数组,给出一个s,找出两个数字相加等于s,如果有多对,输出乘积最小的
#有序
# a+b=s,使得a*b=min a=s-b
#暴力
def find(arr,s):
if len(arr)<=2:
print("input error")
exit()
min=10000000
index1=-1
index2=-1
for i in range(len(arr)-1):
for j in range(i+1,len(arr)-1):
if(arr[i]+arr[j]==s):
if(arr[i]*arr[j]<min):
min=arr[i]*arr[j]
index1=i
index2=j
return index1,index2
#用例
#输入,
def find1(arr,s):
if len(arr)<=2:
print("input error")
exit()
min=10000000
index1=-1
index2=-1
low=0
high=len(arr)-1
while(low<high):
if arr[low]+arr[high]==s:
if arr[low]*arr[high]<min:
min=arr[low]*arr[high]
index1=low
index2=high
low=low +1
high=high -1
elif arr[low]+arr[high]<s:
low=low+1
elif arr[low]+arr[high]>s:
high=high -1
return index1,index2
a=[2,1,3,2,4]
print(find1(a,4))