969 auto *maximum =
new int[n];
970 auto *minimum =
new int[n];
971 memset(maximum, 0, n *
sizeof(
int));
972 memset(minimum, 0, n *
sizeof(
int));
973 auto *paths =
new path[n];
974 for(
int i = 0; i < n; i++) {
978 paths[i] = path(a, b);
980 sort(paths, paths + n);
981 maximum[0] = paths[0].b;
982 minimum[n - 1] = paths[n - 1].b;
983 for(
int i = 1; i < n; i++) {
984 maximum[i] = max(maximum[i - 1], paths[i].b);
986 for(
int i = n - 2; i >= 0; i--) {
987 minimum[i] = min(minimum[i + 1], paths[i].b);
990 for(
int i = 0; i < n; i++) {
991 if(maximum[i] > paths[i].b || minimum[i] < paths[i].b) {