/** * Vzorové řešení KSP 27-3-6 */ #include #include #include struct prepravka { int vnejsi, vnitrni; // Snadné setřízení pomocí std::sort bool operator<(const prepravka& other) const { return vnejsi > other.vnejsi; } }; int main ( void ) { int N; scanf("%d", &N); prepravka prepravky [N]; for (int i = 0; i < N; i++) scanf("%d %d", &prepravky[i].vnejsi, &prepravky[i].vnitrni); std::sort(prepravky, prepravky + N); // Maximova halda std::priority_queue kominky; if (N > 0) kominky.push(prepravky[0].vnitrni); for (int i = 1; i < N; i++) { // Vhodný komínek použijeme if (kominky.top() >= prepravky[i].vnejsi) kominky.pop(); kominky.push(prepravky[i].vnitrni); } printf("%d\n", kominky.size()); return 0; }