#include #include #include using namespace std; // Pro uložení hostů si vytvoříme strukturu. // "Větší" host má větší prioritu na ubytování. struct host { int id, platba; }; bool operator< (const host &A, const host &B) { return A.platba < B.platba; } int main() { // Čteme vstup int P, N, H; cin >> P >> N >> H; vector vysky(H), platby(H); for (int h=0; h> vysky[h]; for (int h=0; h> platby[h]; // Inicializujeme výstupní proměnné long long zisk = 0; vector ubytovani(H,-1); // Umístíme každého hosta na nejvyšší poschodí, kde může bydlet vector< vector > hotel(P+1); for (int h=0; h Q; for (int p=P; p>=1; --p) { for (const auto &h : hotel[p]) Q.push(h); for (int n=0; n