题解 | #奖学金#

奖学金

https://www.nowcoder.com/practice/cee98a512ec246a2918ea8121f7612c8

#include <iostream>
using namespace std;

int main() {
    long long r,avg,min_score,flag_a,flag_b,n;
    while(cin>>n>>r>>avg){
    long long count=0,min_time=0;
    long long a[n],b[n];
    for(long long i = 0; i < n; i++){
        cin>>a[i]>>b[i];
        count = count + a[i];
    }
    for(long long  i = 0; i < n; i++){
        for(long long j = i+1; j < n; j++){
            if(b[i]>b[j]){
                flag_b=b[i];
                b[i]=b[j];
                b[j]=flag_b;

                flag_a=a[i];
                a[i]=a[j];
                a[j]=flag_a;
            }
        }
    }
    if(count/n-avg>=0) cout<<"0"<<endl;
    else{
        min_score = avg*n-count;
        long long i=0;
        while(min_score>0){
            if(min_score>=r-a[i]){
                min_score=min_score-(r-a[i]);
                min_time=min_time+(r-a[i])*b[i];
            }else{
                min_time=min_time+min_score*b[i];
                min_score=-1;
            }
            i++;
        }
        cout<<min_time<<endl;
    }
    }
    return 0;
}
// 64 位输出请用 printf("%lld")

这种方法应该是正常大学生才能做出来的吧

全部评论

相关推荐

11-01 20:03
已编辑
门头沟学院 算法工程师
Amazarashi66:这种也是幸存者偏差了,拿不到这个价的才是大多数
点赞 评论 收藏
分享
jack_miller:杜:你不用我那你就用我的美赞臣
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务