poj2431 Expedition

来源:互联网 发布:java中map集合的用法 编辑:程序博客网 时间:2024/05/22 05:26

直接代码、、、

#include<string.h>#include<stdio.h>#include<queue>#include<iostream>#include<algorithm>using namespace std;struct node{    int fuel,dist;    //bool operator < (const node&d) const{     // return  dist>d.dist;   // }}s[10005];bool cmp(node b,node c){    return b.dist>c.dist;}int main(){    int a,l,p,pos,ans,d,fuels;    scanf("%d",&a);    priority_queue<int> q;    for(int i=0;i<a;i++)    {        scanf("%d %d\n",&s[i].dist,&s[i].fuel);    }    sort(s,s+a,cmp);//从大到小进行排序,    scanf("%d %d",&l,&p);    s[a].dist=0;    for(int i=0;i<=a;i++)        s[i].dist=l-s[i].dist;    fuels=p;    ans=0;    pos=0;    for(int i=0;i<=a;i++)    {        d=s[i].dist-pos;        while(fuels-d<0)        {            if(q.empty())            {                printf("-1\n");                return 0;            }            fuels+=q.top();            q.pop();            ans++;        }        fuels-=d;        pos=s[i].dist;        q.push(s[i].fuel);    }    printf("%d\n",ans);    return 0;}


0 0
原创粉丝点击