1 条题解
-
0
# include <bits/stdc++.h> # define rr register const int N=32400,INF=0x3f3f3f3f; std::multiset <int> S; int n; inline int read(void){ int res,f=1; char c; while((c=getchar())<'0'||c>'9') if(c=='-')f=-1; res=c-48; while((c=getchar())>='0'&&c<='9') res=res*10+c-48; return res*f; } inline int nxt(int v){ std::multiset <int>::iterator it=S.lower_bound(v); if(it==S.end()){ return INF; } return *it; } inline int pre(int v){ std::multiset <int>::iterator it=S.upper_bound(v); if(it==S.begin()){ return -INF; } return *(--it); } int main(void){ n=read(); int flag=0,ans=0; for(rr int i=1;i<=n;++i){ int x,v; x=read(),v=read(); if(flag==x){ S.insert(v); }else if(S.empty()){ flag=x; S.insert(v); }else{ int l=pre(v),r=nxt(v); if(abs(l-v)<=abs(r-v)){ ans=(ans+abs(l-v))%1000000; S.erase(l); }else{ ans=(ans+abs(r-v))%1000000; S.erase(r); } } } printf("%d",ans); return 0; }
- 1
信息
- ID
- 623
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 10
- 标签
- 递交数
- 2
- 已通过
- 2
- 上传者