1. 程式人生 > >Supermarket -貪心+priority-queue

Supermarket -貪心+priority-queue

  • Supermarket

  • #include <iostream>
    #include <queue>
    #include <cstdlib>
    #include <iostream>
    #include <algorithm>
    using namespace std;
    #define maxn 11115
    struct node
    {
        int profit,day;
    } a[maxn];
    bool cmp(node x,node y)
    {
        return x.day>y.day;
    }
    int n,mxx,j,ans;
    int main()
    {
        while(cin>>n)
        {
            for(int i=0; i<n; i++)
                cin>>a[i].profit>>a[i].day;
            sort(a,a+n,cmp);
            priority_queue<int>q;
            mxx=a[0].day;
            j=ans=0;
            for(int big=mxx; big>0; big--)
            {
                for(; a[j].day>=big; j++)
                    q.push(a[j].profit);
                if(!q.empty())
                {
                    ans+=q.top();
                    q.pop();
                }
            }
            cout<<ans<<endl;
        }
        return 0;
    }