#include<bits/stdc++.h>
using namespace std;typedef long long ll;struct qwq{ll x,y;
};
vector<qwq> T;
vector<ll> q;int l,r;
ll basex,basey;
ll n,d,s;
double ans;
double slope(int a,int b) {double tmp1 = (double)T[b].y-T[a].y;double tmp2 = (double)T[b].x-T[a].x;if(a==b) return 0;return tmp1/tmp2;
}
int binarySearch() {int L = l, R = r;while(L<R) {int mid = (L+R)>>1;if(slope(0,q[mid])<slope(0,q[mid+1<=r?mid+1:0])) L = mid+1;else R = mid;}return R;
}
int main() {ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin>>n>>size(n<<1);q.resize(n<<1);cin>>basey>>basex;T[1].x=basex,T[1].y=basey;ans+=(double)basey/basex;l=r=1;q[l]=1;for(int i = 2;i<=n;++i) {ll nx,ny;cin>>ny>>nx;s+=ny;T[i].x=basex-(i-1)*d,T[i].y=ny-s;ll ox =T[i].x-nx,oy = -s;T[0].x=ox,T[0].y=oy;while(l<r&&slope(i,q[r])<slope(q[r],q[r-1])) --r; q[++r]=i;int p = binarySearch();ans+=slope(0,q[p]);}cout.precision(0);cout<<fixed<<ans<<endl;return 0;
}
转载于:.html
本文发布于:2024-01-28 01:33:15,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17063767993868.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |