#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=1e5+10;
struct node{
int p,c;
bool operator < (const node &x) const{
return c<x.c;
}
}a[N];
int n,s;
int sp[N],scp[N];
int getp(int l,int r){
return sp[r]-sp[l-1];
}
int getscp(int l,int r){
return scp[r]-scp[l-1];
}
signed main(){
cin>>n>>s;
for(int i=1;i<=n;++i){
cin>>a[i].p>>a[i].c;
}
sort(a+1,a+n+1);
for(int i=1;i<=n;++i){
sp[i]=sp[i-1]+a[i].p;
scp[i]=scp[i-1]+a[i].c*a[i].p;
}
int ans=0x3f3f3f3f3f3f3f3f;
for(int i=0;i<=n;++i){
int now=a[i].c*s+getscp(i+1,n)-a[i].c*getp(i+1,n);
ans=min(ans,now);
}
cout<<ans<<endl;
return 0;
}
蓝桥——训练士兵
最新推荐文章于 2025-12-22 09:47:08 发布
4483

被折叠的 条评论
为什么被折叠?



