处女座的训练

处女座的训练

http://www.nowcoder.com/questionTerminal/2c9044357e584b9a8656ddc771770ca6

#include <cstdio>
#include <iostream>
#include <cmath>
#include <algorithm>
#include <cstring>
#define ll long long
using namespace std;
const int maxn=1e5+100;
typedef struct p
{
    ll a,b;    
}p;
p x[maxn];
bool cmp(p &a,p &b)
{
    return b.b*a.a<a.b*b.a; //结构体排序
}
int main(void)
{
    int n;
//    freopen("in.txt","r",stdin);
    scanf("%d",&n);
        ll ans=0;用long long是因为做乘法运算时会溢出int
        for(int i=0;i<n;i++)
        {
            scanf("%lld%lld",&x[i].a,&x[i].b);
            ans+=x[i].b; //得到所有的疲劳值
        }
        sort(x,x+n,cmp);
        ll sum=0;
        for(int i=0;i<n;i++)
        {
            ans-=x[i].b;
            sum+=ans*x[i].a;    
        } 
        printf("%lld\n",sum);
    return 0;
}
全部评论

相关推荐

投递拼多多等公司10个岗位
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务