|
思路: 四个字:能放就放。。
#include <stdio.h> #include <stdlib.h>
int arr[10032][2], N, L, ans;
int cmp(const void *a, const void *b) { return *(int *)a - *(int *)b; }
inline int max(int a, int b) { return a > b ? a : b; }
int main() { int i, p, c;
freopen("e:\\test\\in.txt", "r", stdin);
scanf("%d%d", &N, &L); for (i = 0; i < N; i++) scanf("%d%d", &arr[i][0], &arr[i][1]); qsort(arr, N, sizeof(arr[0]), cmp);
for (i = p = 0; p < N; ) { i = max(i, arr[p][0]); c = (arr[p][1] - i + L - 1) / L; i += c * L; ans += c; while (p < N && i >= arr[p][1]) p++; }
printf("%d\n", ans);
return 0; }
|