Advertisement
IlidanBabyRage

1632.c

Aug 22nd, 2015
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.85 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. void _qsort(int *a, int *b, int l, int r);
  4.  
  5. int main(){
  6.     int m, n, a[2001], b[2001], i, cur = 0, cnt = 0;
  7.     scanf("%d%d", &m, &n);
  8.     n <<= 1;
  9.     for (i = 0; i < n; i += 2){
  10.         scanf("%d%d", &a[i], &a[i + 1]);
  11.         b[i] = 1, b[i + 1] = -1;
  12.     }
  13.     _qsort(a, b, 0, n - 1);
  14.     for (i = 0; i < n; i++){
  15.         cur += b[i];
  16.         if (0 == cur)
  17.             cnt++;
  18.     }
  19.     printf("%d\n", cnt);
  20.  
  21.     return 0;
  22. }
  23.  
  24. void _qsort(int *a, int *b, int l, int r){
  25.     int tmp, m, i, j;
  26.     i = l, j = r;
  27.     m = a[(l + r) / 2];
  28.     do{
  29.         while (a[i] < m)
  30.             i++;
  31.         while (a[j] > m)
  32.             j--;
  33.         if (i <= j){
  34.             if (a[i] > a[j] || (a[i] == a[j] && b[j] == 1)){
  35.                 tmp = a[i];
  36.                 a[i] = a[j];
  37.                 a[j] = tmp;
  38.                 tmp = b[i];
  39.                 b[i] = b[j];
  40.                 b[j] = tmp;
  41.             }
  42.             i++;
  43.             j--;
  44.         }
  45.     }while (i <= j);
  46.     if (i < r)
  47.         _qsort(a, b, i, r);
  48.     if (j > l)
  49.         _qsort(a, b, l, j);
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement