标签:
#include<cstdio> #include<queue> #include<algorithm> using namespace std; priority_queue<int> que; struct Stop { int dis,fuel; }stop[10010]; bool cmp (Stop a,Stop b) { if(a.dis==b.dis) return a.fuel>b.fuel; return a.dis<b.dis; } int main() { int n,L,p; while(~scanf("%d",&n)) { for(int i=0;i<n;i++) { scanf("%d%d",&stop[i].dis,&stop[i].fuel); } scanf("%d%d",&L,&p); for(int i=0;i<n;i++) { stop[i].dis=L-stop[i].dis; } sort(stop,stop+n,cmp); stop[n].dis=L;stop[n].fuel=0; int cnt=0,pos=0,flag=0; for(int i=0;i<=n;i++) { int d=stop[i].dis-pos; while(p<d) { if(!que.empty()) { p+=que.top(); que.pop(); cnt++; }else break; } if(p<d) { flag=1; puts("-1");break; } p-=d; que.push(stop[i].fuel); pos=stop[i].dis; } if(flag==0) printf("%d\n",cnt); while(!que.empty()) que.pop(); } return 0; }
标签:
原文地址:http://www.cnblogs.com/LinesYao/p/5740854.html