Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Question 1
- #include <bits/stdc++.h>
- using namespace std;
- int main()
- {
- int n, maxi = INT_MIN, mini = INT_MAX;
- int a[100009], ans = INT_MIN;
- pair<int, int> bucket[100009];
- double avg;
- cin>>n;
- for(int i=0; i<n; i++)
- {
- cin>>a[i];
- maxi = max(maxi, a[i]);
- mini = min(mini, a[i]);
- bucket[i] = make_pair(INT_MAX, INT_MIN);
- }
- avg = (maxi - mini)*1.0/(n-1);
- for(int i=0; i<n; i++)
- {
- int x = (a[i] - mini)/avg;
- bucket[x].first = min(bucket[x].first, a[i]);
- bucket[x].second = max(bucket[x].second, a[i]);
- }
- int prev = bucket[0].second;
- for(int i=1; i<n; i++)
- {
- if(bucket[i].first == INT_MAX)
- continue;
- ans = max(ans, bucket[i].first - prev);
- prev = bucket[i].second;
- }
- printf("%d\n", ans);
- }
Add Comment
Please, Sign In to add comment