966 {
967 int n;
968 cin >> n;
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++) {
975 int a;
976 int b;
977 cin >> a >> b;
978 paths[i] = path(a, b);
979 }
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);
985 }
986 for(int i = n - 2; i >= 0; i--) {
987 minimum[i] = min(minimum[i + 1], paths[i].b);
988 }
990 for(int i = 0; i < n; i++) {
991 if(maximum[i] > paths[i].b || minimum[i] < paths[i].b) {
993 }
994 }
996 delete[] paths;
997 delete[] minimum;
998 delete[] maximum;
999 return 0;
1000 }
vector< vector< int > > ans