#include <iostream>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <algorithm>
using namespace std;
#define maxn 10010
int 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;
}
UVA 10487
最新推荐文章于 2024-08-17 03:24:39 发布