中级守护
4837 皇冠失窃
题目描述 Description
皇宫的皇冠失窃了,国王命令能工巧匠来重新打造一个新的皇冠,工匠有很多重量不一的矿石,由于工艺的要求,他必须在这些矿石中选择三个出来,由这三个作为打造皇冠的原材料。但是选择矿石要满足一个要求,就是这三个矿石的重量之和需要和原先皇冠的重量尽可能的接近。他需要在众多的矿石中找到这最合适的三个矿石
输入描述 Input Description
输入三行
第一行一个数字n,表示n个矿石(3<=n<=100)
第二行n个数字,表示这n个矿石的重量
第三行一个数字,表示皇冠的重量
输出描述 Output Description
输出一行,一个数字,表示这三个矿石的重量之和
样例输入 Sample Input
10 27 49 35 44 34 19 35 20 32 13 111
样例输出 Sample Output
111
数据范围及提示 Data Size & Hint
如果多个答案满足题意,输出较小的那个。
int a[111];
int main()
{
int n,x,ans=999999999,anss;
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
cin>>x;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
for(int k=1;k<=n;k++){
if(abs(x-a[i]-a[j]-a[k])<ans){
ans=abs(x-a[i]-a[j]-a[k]);
anss=a[i]+a[j]+a[k];
}
else if(abs(x-a[i]-a[j]-a[k])==ans){
if(x-a[i]-a[j]-a[k]<ans){
ans=abs(x-a[i]-a[j]-a[k]);
anss=a[i]+a[j]+a[k];
}
}
}
}
}
cout<<anss;
}
80分!!!
请大佬找错!!
中级守护
ding
---——---——---——---——---——---——---——---——---——---——---——---——---——---——---——---——---——--
_____________________________________________________________________________________________________________________________________
华丽的分割线
已自行解决!