Guest User

Untitled

a guest
Jun 23rd, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.71 KB | None | 0 0
  1. //Question 1
  2.  
  3. #include <bits/stdc++.h>
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8. int n, maxi = INT_MIN, mini = INT_MAX;
  9. int a[100009], ans = INT_MIN;
  10. pair<int, int> bucket[100009];
  11. double avg;
  12.  
  13. cin>>n;
  14. for(int i=0; i<n; i++)
  15. {
  16. cin>>a[i];
  17. maxi = max(maxi, a[i]);
  18. mini = min(mini, a[i]);
  19. bucket[i] = make_pair(INT_MAX, INT_MIN);
  20. }
  21.  
  22. avg = (maxi - mini)*1.0/(n-1);
  23. for(int i=0; i<n; i++)
  24. {
  25. int x = (a[i] - mini)/avg;
  26. bucket[x].first = min(bucket[x].first, a[i]);
  27. bucket[x].second = max(bucket[x].second, a[i]);
  28. }
  29.  
  30. int prev = bucket[0].second;
  31. for(int i=1; i<n; i++)
  32. {
  33. if(bucket[i].first == INT_MAX)
  34. continue;
  35. ans = max(ans, bucket[i].first - prev);
  36. prev = bucket[i].second;
  37. }
  38.  
  39. printf("%d\n", ans);
  40. }
Add Comment
Please, Sign In to add comment