#include #include #include #include #include #include #include #include using namespace std; enum struct OutputMode { HackerRank, Linux }; OutputMode outputMode = OutputMode::Linux; int main() { /* Enter your code here. Read input from STDIN. Print output to STDOUT */ int numberOfElements; vector v; int val, i = 1; if (outputMode == OutputMode::HackerRank) { cin >> numberOfElements; while(cin >> val) { v.push_back(val); if (i++ == numberOfElements) break; } } else { numberOfElements = 10; vector testCase = {64630,11735,14216,99233,14470,4978,73429,38120,51135,67060}; v = testCase; } // mean double sum = accumulate(v.begin(), v.end(), 0); cout << fixed << setprecision(1) << sum/v.size() << endl; // median sort(v.begin(), v.end()); if ((v.size() % 2) == 0) { int index1 = v.size()/2; int index2 = index1 - 1; //cout << "index1: " << index1 << " index2: " << index2 << endl; double median = (v[index1] + v[index2])/double(2); cout << fixed << setprecision(1) << median << endl; } else { int index = (int)ceil(v.size()/2); //cout << "index: " << index << endl; cout << fixed << setprecision(1) << (double) v[index] << endl; } // mode multimap modeMap; for (auto& i: v) modeMap.insert(multimap::value_type(i, 1)); pair key_and_count(v[0], 1); for (auto& i: modeMap) { size_t count = modeMap.count(i.first); if ( count > key_and_count.second) key_and_count = pair(i.first, count); } //cout << "mode: num: " << key_and_count.first << " count: " << key_and_count.second << endl; cout << key_and_count.first << endl; return 0; }