#include #include #include using namespace std; typedef struct { int old; int ne; int tar; } riad ; riad pole[20000000]; int N, K, pocet; int main() { scanf("%d\n", &N); for ( ; N > 0 ; N--) { scanf("%d\n", &K); for (int i = 0; i < K; i++) { scanf("%d %d\n", &(pole[i].old),&(pole[i].tar)); } pocet=-1; bool esteTreba =true; while(esteTreba) { pocet++; pole[0].ne =max(pole[0].old+1, pole[1].old); for (int i = 1; i < K-1; i++) { pole[i].ne =max(pole[i].old+1, max(pole[i-1].old, pole[i+1].old)); } pole[K-1].ne =max(pole[K-1].old+1, pole[K-2].old); for (int i = 0; i < K; i++) { if (pole[i].ne > pole[i].tar ) { esteTreba =false; break; } pole[i].old =pole[i].ne ; } } printf("K prechodu reky je treba %d pontonu.\n", pocet); } return 0; }