2252: 找和最接近但不超过K的两个元素
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:1
解决:1
题目描述
在一个长度为n(1 < n < 1000)的整数(0至1000之间)序列中,选出两个元素使得它们的和最接近但不超过K(0 <= K < 2000)。保证一定存在不超过K的两元素和。
输入
第一行输入一个整数n 第二行输入一个整数K 第三行输入序列,用空格分开
输出
最接近但不超过K的和
样例输入 复制
4
7
1 2 2 8
样例输出 复制
4
提示
#include<bits/stdc++.h> using namespace std; int a[1010],n,k,ans,d=2000; int main(){ cin>>n>>k; for (int i=1;i<=n;i++) { cin>>a[i]; } for (int i=1;i<=n-1;i++) { for (int j=i+1;j<=n;j++) { if (a[i]+a[j]<=k&&k-a[i]-a[j]<d) { d=k-a[i]-a[j]; ans=a[i]+a[j]; } } } cout<<ans; return 0; }