// https://www.hackerrank.com/challenges/insertion-sort/problem #include using namespace std; vector split_string(string); // Complete the insertionSort function below. int insertionSort(vector arr) { int result=0; for (int i = 0; i < arr.size(); i++) { for (int k = 0; k < i; k++) { // k looping all sorted elements if (arr[i] < arr[k]) { result += (i-k); sort(arr.begin(), arr.begin()+i+1); break; } } } return result; } int main() { ofstream fout(getenv("OUTPUT_PATH")); int t; cin >> t; cin.ignore(numeric_limits::max(), '\n'); for (int t_itr = 0; t_itr < t; t_itr++) { int n; cin >> n; cin.ignore(numeric_limits::max(), '\n'); string arr_temp_temp; getline(cin, arr_temp_temp); vector arr_temp = split_string(arr_temp_temp); vector arr(n); for (int i = 0; i < n; i++) { int arr_item = stoi(arr_temp[i]); arr[i] = arr_item; } int result = insertionSort(arr); fout << result << "\n"; } fout.close(); return 0; } vector split_string(string input_string) { string::iterator new_end = unique(input_string.begin(), input_string.end(), [] (const char &x, const char &y) { return x == y and x == ' '; }); input_string.erase(new_end, input_string.end()); while (input_string[input_string.length() - 1] == ' ') { input_string.pop_back(); } vector splits; char delimiter = ' '; size_t i = 0; size_t pos = input_string.find(delimiter); while (pos != string::npos) { splits.push_back(input_string.substr(i, pos - i)); i = pos + 1; pos = input_string.find(delimiter, i); } splits.push_back(input_string.substr(i, min(pos, input_string.length()) - i + 1)); return splits; }