Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
ac代码!#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<queue> using namespace std; int l,p,n; pair<int,int>pa[10005]; bool cmp(pair<int,int> a,pair<int,int> b){ return a.first<b.first; } void solve(){ pa[n].first=l; pa[n].second=0; n++; priority_queue<int>que; int ans=0,pos=0,tank=p; for(int i=0;i<n;i++){ int d=pa[i].first-pos; while(tank-d<0){ if(que.empty()){ puts("-1"); return; } tank+=que.top(); que.pop(); ans++; } tank-=d; pos=pa[i].first; que.push(pa[i].second); } printf("%d\n",ans); } int main(){ scanf("%d",&n); for(int i=0;i<n;i++) scanf("%d%d",&pa[i].first,&pa[i].second); scanf("%d%d",&l,&p); for(int i=0;i<n;i++) pa[i].first=l-pa[i].first; sort(pa,pa+n,cmp); solve(); } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator