#include #include struct napeti { int zac; int kon; } meze[1000001]; // porovnávací funkce pro Quicksort // makro poslouží pro zjednodušení zápisu #define R(x) ((struct napeti*) x)->kon int cmp(const void *a, const void *b) { return (R(a) - R(b)); } int main(void) { int a, b, n; scanf("%d\n", &n); for (int i = 0; i < n; i++) { scanf("%d %d\n", &a, &b); meze[i].zac = a; meze[i].kon = b; } qsort(meze, n, sizeof(struct napeti), cmp); int p = 0; // poslední konec meze int vys = 0; // výsledný počet for (int i = 0; i < n; i++) { if (meze[i].zac > p) { p = meze[i].kon; vys++; } } printf("%d\n", vys); return 0; }