bzoj1634

    xiaoxiao2021-03-25  146

    分析:经典套路,直接用t/d排序以后直接统计答案就好。

    #include<cstdio> #include<cstring> #include<algorithm> #define fo(i,a,b) for(int i=a;i<=b;i++) #define fd(i,a,b) for(int i=a;i>=b;i--) using namespace std; typedef long long ll; const int N=2e5+5; int n,m; struct node { int x,y; }a[N]; bool cmp(node x,node y) { return x.x*y.y>y.x*x.y; } int main() { scanf("%d",&n); fo(i,1,n)scanf("%d%d",&a[i].y,&a[i].x); sort(a+1,a+1+n,cmp); ll ans=0,t=0; fo(i,1,n) ans+=t*a[i].x,t+=a[i].y*2; printf("%lld",ans); return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-7704.html

    最新回复(0)