Share Pastebin
Guest
Public paste!

parsa

By: a guest | Sep 9th, 2010 | Syntax: C++ | Size: 0.89 KB | Hits: 18 | Expires: Never
Copy text to clipboard
  1. #include<iostream>
  2. #include<cstdio>
  3. #include<algorithm>
  4. using namespace std;
  5. const int MAXN=10000;
  6. struct POLE{
  7.     int start,finish;
  8. }pole[MAXN];
  9. bool operator<(POLE a,POLE b){
  10.     /*
  11.     if(a.start!=b.start) return a.start<b.start;
  12.     return a.finish>b.finish;
  13.     */
  14.     return a.start<b.start;
  15. }
  16.  
  17. int n,l;
  18. int used;
  19. int main(){
  20.     scanf("%d%d",&n,&l);
  21.     for(int i=1;i<=n;i++)
  22.         scanf("%d%d",&pole[i].start,&pole[i].finish);
  23.  
  24.     sort(pole+1,pole+n+1);
  25.  
  26.     int last_covered=0;
  27.     for(int i=1;i<=n;i++){
  28.         if(pole[i].finish<=last_covered) continue;
  29.         last_covered=max(last_covered,pole[i].start);
  30.         int tool=pole[i].finish-last_covered;
  31.         int tedad=tool/l;
  32.         if(tedad*l<tool) tedad++;
  33.         used+=tedad;
  34.         last_covered=last_covered+tedad*l;
  35.     }
  36.     //cout<<last_covered<<endl;
  37.     printf("%d%s",used,"\n");
  38.     return 0;
  39. }