Submission #591001

#TimeUsernameProblemLanguageResultExecution timeMemory
591001webHotel (CEOI11_hot)C++17
0 / 100
937 ms36088 KiB
#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)

hot.cpp: In function 'int binarySearchRoom(long int, long int, std::vector<long int>&, std::vector<std::pair<long int, long int> >&)':
hot.cpp:36:12: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   36 |     if(min == roomOffers.size())
      |        ~~~~^~~~~~~~~~~~~~~~~~~~
hot.cpp: In function 'int main()':
hot.cpp:67:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<long int, long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   67 |     for(int i = 0; i<offers.size(); ++i)
      |                    ~^~~~~~~~~~~~~~
#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...