Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- void bucketSort(int* arr, int n, int k) {
- queue<int> q0, q1;
- for (int i = 0; i < n; i++) {
- if (arr[i] & (1<<k)) {
- q1.push(arr[i]);
- } else {
- q0.push(arr[i]);
- }
- }
- int i = 0;
- while (!q0.empty()) {
- arr[i] = q0.front();
- q0.pop();
- i++;
- }
- while(!q1.empty()) {
- arr[i] = q1.front();
- q1.pop();
- i++;
- }
- }
- void radixSort(int* arr, int n) {
- for (int i = 0; i < 32; i++) {
- bucketSort(arr, n, i);
- }
- }
- int maxDiff(int* arr, int n) {
- if (n < 2) {
- return 0;
- }
- radixSort(arr, n);
- int m = arr[1] - arr[0];
- for (int i = 1; i < n-1; i++) {
- if (arr[i+1] - arr[i] > m) {
- m = arr[i+1] - arr[i];
- }
- }
- return m;
- }
- int main() {
- int n;
- cin >> n;
- int* arr = new int[n];
- for (int i = 0; i < n; i++) {
- cin >> arr[i];
- }
- cout << maxDiff(arr, n);
- }
Add Comment
Please, Sign In to add comment