UVA 10487

来源:互联网 发布:javascript java 编辑:程序博客网 时间:2024/06/07 01:59
#include <iostream>#include <stdlib.h>#include <string.h>#include <stdio.h>#include <algorithm>using namespace std;#define maxn 10010int num[maxn], que, n, ans, m;int solve( int sum){    int L = 0, R = n -1 ;    int res = 0x1f1f1f1f;    while(L < R)    {        int temp = num[L] + num[R];        int dis = abs(sum - temp);        if(dis < res)        {            res = dis;            ans = temp;        }        if(temp == sum)         return temp;        if(temp > sum)          R--;        else          L++;    }    return ans;}int main(){    int cases = 1;  while(scanf("%d",&n) != EOF && n)  {      for( int i = 0; i < n; i++)       scanf("%d",&num[i]);    sort(num, num + n );    scanf("%d",&que);    printf("Case %d:\n",cases++);    for( int i = 0; i < que; i++)    {        scanf("%d",&m);        int res = solve(m);        printf("Closest sum to %d is %d.\n",m, res);    }  }  return 0;}
0 0
原创粉丝点击