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 |
优先队列,特别注意的地方就是题目并不是一定按顺序输入。一道简单的题目。附代码#include"iostream" #include"cstdio" #include"cstring" #include"queue" #include"algorithm" using namespace std; const int ms=1e5+5; struct node { int a,b; }a[ms]; bool cmp(const node &a1,const node &a2) { return a1.a<a2.a; } int n,l,p; void input() { scanf("%d",&n); for(int i=0;i<n;i++) { scanf("%d%d",&a[i].a,&a[i].b); } scanf("%d%d",&l,&p); for(int i=0;i<n;i++) a[i].a=l-a[i].a; a[n].a=l; a[n].b=0; n++; sort(a,a+n,cmp); } void solve() { int i,d,pos=0,tank=p,ans=0; priority_queue<int> q; for(i=0;i<n;i++) { d=a[i].a-pos; while(tank<d) { if(q.empty()) { puts("-1"); return ; } tank+=q.top(); q.pop(); ans++; } tank-=d; pos=a[i].a; q.push(a[i].b); } cout<<ans<<endl; return ; } int main() { input(); solve(); return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator