Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- void _qsort(int *a, int *b, int l, int r);
- int main(){
- int m, n, a[2001], b[2001], i, cur = 0, cnt = 0;
- scanf("%d%d", &m, &n);
- n <<= 1;
- for (i = 0; i < n; i += 2){
- scanf("%d%d", &a[i], &a[i + 1]);
- b[i] = 1, b[i + 1] = -1;
- }
- _qsort(a, b, 0, n - 1);
- for (i = 0; i < n; i++){
- cur += b[i];
- if (0 == cur)
- cnt++;
- }
- printf("%d\n", cnt);
- return 0;
- }
- void _qsort(int *a, int *b, int l, int r){
- int tmp, m, i, j;
- i = l, j = r;
- m = a[(l + r) / 2];
- do{
- while (a[i] < m)
- i++;
- while (a[j] > m)
- j--;
- if (i <= j){
- if (a[i] > a[j] || (a[i] == a[j] && b[j] == 1)){
- tmp = a[i];
- a[i] = a[j];
- a[j] = tmp;
- tmp = b[i];
- b[i] = b[j];
- b[j] = tmp;
- }
- i++;
- j--;
- }
- }while (i <= j);
- if (i < r)
- _qsort(a, b, i, r);
- if (j > l)
- _qsort(a, b, l, j);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement