原题链接:
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3593
基本思路:
考虑枚举的时间复杂度过高,采用中途相遇法
枚举前两个数的和;枚举后两个数的和;对后两个数的和进行排序,把前两个数的和的结果在后两个数
的结果中进行二分查找,打印即可
拓展知识
//二分查找
int find(int left,int right,int x){
mid=(left+right)/2;
while(left<right)
x<mid?right=mid-1:left=mid+1;
return left-1;
}
具体实现