首页 > 代码库 > POJ 2456

POJ 2456

 1 #include <iostream> 2 #include <vector> 3 #include <algorithm> 4 using namespace std; 5  6 unsigned int N; 7 unsigned int C; 8 vector<int> x; 9 int stall;10 11 int main()12 {13     /***************************************************/ 14     //input and preprocessing15     16     cin >> N >> C;17     for(int i = 0; i < N; ++i)18     {19         int temp;20         cin >> temp;21         x.push_back(temp);22     }23     sort(x.begin(), x.end());24     25     26     /***************************************************/ 27     //solver28     int lower = 0;29     int upper = 1000000000;30     int mid;31     while(upper - lower > 1)32     {33         mid = (upper + lower) / 2;34     35         /***************************************************/ 36         //calc37         stall = 1;38         for(int i = 0, j = 0; i < x.size(); )39         {40             if(x[i] - x[j] >= mid)41             { 42                 ++stall;43                 j = i;44                 ++i; 45             }46             else47             {48                 ++i;49             }50                 51         }52         //end calc53         /***************************************************/ 54         if(stall >= C)55             lower = mid;56         else57             upper = mid;    58     }59     60     /***************************************************/ 61     //output62     63     cout << lower << endl;64     return 0;65 } 

 

POJ 2456