问题标题: 酷町堂:4837皇冠失窃

0
0
已解决
邹正洋
邹正洋
中级守护
中级守护

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分!!!

请大佬找错!!


0
0
邹正洋
邹正洋
中级守护
中级守护

ding

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

---——---——---——---——---——---——---——---——---——---——---——---——---——---——---——---——---——--

_____________________________________________________________________________________________________________________________________

                                                                                       华丽的分割线

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

已自行解决!

0
0
我要回答