思路是维护一个前缀和和前缀最小值,然后贪心的找最小值。
ll a[N], b[N];
ll ans = 1e18, qzh[N], c[N];
signed main()
{
int n = read(), x = read();
c[0] = 1e18;
for(int i = 1; i <= n; i++) {
a[i] = read(), b[i] = read();
qzh[i] = qzh[i - 1] + a[i] + b[i], c[i] = min(b[i] * 1ll, c[i - 1]);
}
for(int i = 1; i <= n; i++) {
ll m = qzh[i];
ans = min(ans, m + c[i] * (x - i));
}
cout << ans;
return 0;
}