Submission #224794

#TimeUsernameProblemLanguageResultExecution timeMemory
224794MKopchevHotel (CEOI11_hot)C++14
100 / 100
1396 ms56868 KiB
#include<bits/stdc++.h>
using namespace std;
const int nmax=5e5+42;

int n,m,want;

set< pair< pair<int/*room*/,int/*cost*/>, int/*id*/> > active;

pair<int/*gain*/,int/*wanted*/> inp[nmax];

int add[nmax];

int main()
{
    scanf("%i%i%i",&n,&m,&want);

    for(int i=1;i<=n;i++)
    {
        int cost,room;
        scanf("%i%i",&cost,&room);
        active.insert({{room,cost},i});
    }

    for(int i=1;i<=m;i++)
        scanf("%i%i",&inp[i].first,&inp[i].second);

    sort(inp+1,inp+m+1);

    for(int i=m;i>=1;i--)
    {
        set< pair< pair<int/*room*/,int/*cost*/>, int/*id*/> >::iterator it=active.lower_bound({{inp[i].second,0},0});

        if(it==active.end())continue;

        int cost=(*it).first.second;

        if(inp[i].first-cost>0)
        {
            add[i]=inp[i].first-cost;
            active.erase(it);
        }

    }

    sort(add+1,add+m+1);

    long long output=0;
    for(int i=m;i>m-want;i--)
        if(add[i]>0)output=output+add[i];

    printf("%lld\n",output);
    return 0;
}

Compilation message (stderr)

hot.cpp: In function 'int main()':
hot.cpp:15:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%i%i%i",&n,&m,&want);
     ~~~~~^~~~~~~~~~~~~~~~~~~~~~
hot.cpp:20:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%i%i",&cost,&room);
         ~~~~~^~~~~~~~~~~~~~~~~~~~
hot.cpp:25:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%i%i",&inp[i].first,&inp[i].second);
         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...