- #include <stdio.h>
- long long num[1000005];
- int main(void)
- {
- int n;
- long long m;
- while(scanf("%d%lld", &n, &m) == 2)
- {
- int i,j;
- for(i=0; i<n; ++i)
- scanf("%lld", &num[i]);
- i = 0;
- j = n-1;
- long long x=-1, y=-1;
- long long v;
- long long res = num[j]*num[j];
- while(i<j)
- {
- v = num[i] + num[j];
- if(v == m)
- {
- if(num[i]*num[j] <= res)
- {
- x = num[i];
- y = num[j];
- res = num[i]*num[j];
- }
- ++i;
- --j;
- }
- else if(v < m)
- {
- ++i;
- }
- else
- {
- --j;
- }
- }
- printf("%lld %lld\\n", x, y);
- }
- return 0;
- }
- //该片段来自于http://www.codesnippet.cn/detail/050720134468.html
来源: http://www.codesnippet.cn/detail/050720134468.html