#include #include #include #include #include #include #include static const int r_size = 1000001; //static int river[r_size] = {}; int main(){ int N; std::scanf("%d", &N); for (int n = 0; n < N; ++n){ std::vector river(r_size, std::numeric_limits::max()); int height; int optimum = std::numeric_limits::max(); std::scanf("%d", &height); for (int h = 0; h < height; ++h){ int left, right; std::scanf("%d %d", &left, &right); river[left] = 1; for (int i=left+1; i < right; ++i) { river[i] = std::min(river[i-1], river[i]) + 1; // std::printf("river %d is at %d", ); } if (river[right - 1] < optimum) { optimum = river[right - 1]; } // std::printf("Optimum is %d for height: %d\n", optimum, h); } printf("K prechodu reky je treba %d pontonu.\n", optimum); } return 0; }