# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
591001 | web | Hotel (CEOI11_hot) | C++17 | 937 ms | 36088 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int binarySearchRoom(long people, long value,
vector<long>& roomOffers, vector<pair<long,long> >& roomCaps)
{
int min = 0, max = roomOffers.size();
while(max > min)
{
int mid = (max+min)/2;
if(roomCaps[mid].first < people)
{
min = mid+1;
continue;
}
else
{
if(roomOffers[mid] < value)
{
if(max == mid+1)
return mid;
max = mid+1;
continue;
}
else
{
min = mid+1;
continue;
}
}
}
if(min == roomOffers.size())
return -1;
else
{
return min;
}
}
int main()
{
long n, m , o; cin>>n>>m>>o;
vector<pair<long, long>> rooms(n);
vector<pair<long,long> > offers(m);
for(int i = 0; i<n; ++i)
{
long a,b; cin>>a>>b;
rooms[i].second = -a;
rooms[i].first = b;
}
for(int i = 0; i<m; ++i)
cin>>offers[i].second>>offers[i].first;
sort(rooms.begin(), rooms.end());
sort(offers.rbegin(), offers.rend());
vector<long> bestOfferRoom(n, 0);
for(int i = 0; i<offers.size(); ++i)
{
int indexInsert = binarySearchRoom(offers[i].first, offers[i].second, bestOfferRoom, rooms);
if(indexInsert != -1)
bestOfferRoom[indexInsert] = offers[i].second;
}
for(int i = 0; i<n; ++i)
{
bestOfferRoom[i] += rooms[i].second;
}
sort(bestOfferRoom.rbegin(), bestOfferRoom.rend());
long long sum = 0;
for(int i = 0; i<o; ++i)
{
sum += max(0l,bestOfferRoom[i]);
}
cout<<sum<<endl;
return 0;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |