Advertisement
arfin97

Blue 155 - [SPOJ AGGRCOW] Aggressive cows!

Oct 16th, 2018
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.21 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define d(x)                cout << #x << " = " << (x) << endl;
  4. #define fr                  freopen("in.txt", "r", stdin);
  5. #define fw                  freopen("out.txt", "w", stdout);
  6. #define mem(x)              memset((x), 0, sizeof((x)));
  7. #define pb                  push_back
  8. #define LL                  long long
  9. #define fastIO              ios_base::sync_with_stdio(false)
  10. #define sf                  scanf
  11. #define pf                  printf
  12. #define SQR(x)              ((x)*(x))
  13. #define sc1(x)              scanf("%d", &x)
  14. #define scb(x, y)           scanf("%d %d", &x, &y)
  15. #define sc3(x, y, z)        scanf("%d %d %d", &x, &y, &z)
  16. #define FOR(i, x, y)        for(int i=int(x); i<int(y); i++)
  17. #define ROF(i, x, y)        for(int i=int(x-1); i>=int(y); i--)
  18. #define all(c)              (c.begin(), c.end())
  19. #define unq(v)              sort(all(v)), (v).erase(unique(all(v)),v.end())
  20. #define EPSILON    (1.0E-9)
  21. #define siz 100000
  22. #define s 1000000
  23.  
  24. int main(){
  25.     #ifndef ONLINE_JUDGE
  26.         clock_t tStart = clock();
  27.         freopen("in.txt", "r", stdin);
  28.         freopen("out.txt", "w", stdout);
  29.     #endif
  30.  
  31.         int tc;
  32.         cin >> tc;
  33.         for(int tr = 1; tr <= tc; tr++){
  34.             int n;
  35.             cin >> n;
  36.             int c;
  37.             cin >> c;
  38.             int ara[n];
  39.             for(int i = 0; i < n; i++){
  40.                 cin >> ara[i];
  41.             }
  42.             sort(ara, ara+n);
  43.  
  44.             //Print Array
  45.             // for(int i = 0; i < n; i++){
  46.             //  cout << ara[i] << " ";
  47.             // }
  48.  
  49.             int lo = 0;
  50.             int hi = ara[n-1];
  51.             int x = (hi+lo)/2;
  52.  
  53.             while(lo < hi-1){
  54.                 x = (hi+lo)/2;
  55.                 int dist = 0;
  56.                 int cow = 1;
  57.                 for(int i = 1; i < n; i++){
  58.                     dist += ara[i]-ara[i-1];
  59.                     if(dist >= x){
  60.                         cow++;
  61.                         dist = 0;
  62.                     }
  63.                 }
  64.                 if(cow < c){
  65.                     hi = x;
  66.                 }
  67.                 else{
  68.                     lo = x;
  69.                 }
  70.                
  71.             }
  72.             cout << lo << endl;
  73.        
  74.         }
  75.  
  76.  
  77.     #ifndef ONLINE_JUDGE
  78.         printf("\n>>Time taken: %.10fs\n", (double) (clock() - tStart) / CLOCKS_PER_SEC);
  79.     #endif
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement