1class Solution {2public:3double solve(vector<int> &arr, int n) {4double count = 0;5for (int i = 0; i < arr.size(); i++) {6count += arr[i];7if (count >= n) return i;8}9return -1;10}11vector<double> sampleStats(vector<int> &count) {12int mini = INT_MAX;13int maxi = 0;14double sum = 0.0;15int d = 0;16int mode = 0;17for (int i = 0; i < count.size(); i++) {18if (count[i] == 0) continue;19mini = min(mini, i);20maxi = max(maxi, i);21sum += double(count[i]) * i;22d += count[i];23if (count[mode] < count[i]) mode = i;24}25vector<double> ans(5, 0.0);26ans[0] = mini;27ans[1] = maxi;28ans[2] = sum / d;29ans[4] = mode;30if (d % 2 == 0) {31ans[3] = (solve(count, d / 2) + solve(count, d / 2 + 1)) / 2;32} else33ans[3] = solve(count, d / 2 + 1);34return ans;35}36};