| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1826 人关注过本帖
标题:蓝桥杯青少中级组题目
取消只看楼主 加入收藏
nucc
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2022-1-23
结帖率:0
收藏
已结贴  问题点数:20 回复次数:0 
蓝桥杯青少中级组题目
题目:小蓝有几箱口罩,现在要平均分配给两个医院,第一行输入一共的箱数,第二行输入每一箱的口罩数量,输出平均分配后的结果,如两个数据大小不同,则按照从大到小输出。
输入:3 200 300 110;
输出:310 300
我的代码是这样的,感觉并不是很好,并且测试不是完全通过。
程序代码:
#include<iostream>
#include <algorithm>
using namespace std;
int jue(int a){
    if(a<0){
        return -a;
    }
    else{
        return a;
    }
}
bool cmp(int a, int b){
    return a>b;
}
int main(){
    int n=0,a[10],sum_k=0,sum[100000],temp=0,temp_lop=1;
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>a[i];
        sum_k=sum_k+a[i];
    }
    int summ=sum_k;
    sum_k=sum_k/2;
    for(int i=0;i<n;i++){
        sum[temp]=a[i];
        temp++;
        for(int j=i+1;j<n;j++){
            sum[temp]=a[i]+a[j];
            temp++;
            for(int p=j+1;p<n;p++){
                sum[temp]=a[i]+a[j]+a[p];
                //cout<<"here";
                temp++;
            }
        }
    }
    //cout<<temp;
    int minnum=jue(sum_k-sum[0]),ans=sum_k-sum[0];
    for(int i=1;i<temp;i++){
        if(jue(sum_k-sum[i])<minnum){
            minnum=jue(sum_k-sum[i]);
            ans=sum_k-sum[i];
        }
    }
    int ans_ar[2];
    ans_ar[0]=sum_k+ans;
    ans_ar[1]=summ-sum_k-ans;
    sort(ans_ar,ans_ar+2,cmp);
    //cout<<sum_k+ans<<" "<<summ-sum_k-ans<<endl;
    cout<<ans_ar[0]<<" "<<ans_ar[1]<<endl;
}
搜索更多相关主题的帖子: int sum cout temp for 
2022-01-23 07:08
快速回复:蓝桥杯青少中级组题目
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015225 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved