#include #include #include using namespace std; void parseFile(const char *path, vector &list1, vector &list2) { ifstream input_stream(path); int a; int b; while(input_stream >> a >> b) { list1.push_back(a); list2.push_back(b); } } void bubbleSort(vector &list) { bool changed = false; for (int i = 0; i < list.size() - 1; i++) { int temp = list[i]; if (list[i] > list[i + 1]) { int temp = list[i]; list[i] = list[i + 1]; list[i + 1] = temp; changed = true; } } if (changed) bubbleSort(list); } int count(int n, vector list) { int cnt = 0; for (int i = 0; i < list.size(); i++) { if (list[i] == n) cnt++; } return cnt; } int main(int argc, char *argv[]) { vector list1; vector list2; // parse input parseFile("input", list1, list2); // sort lists bubbleSort(list1); bubbleSort(list2); // PART 1 /// sum up differences int sum = 0; for (int i = 0; i < list1.size(); i++) { cout << list1[i] << " " << list2[i] << endl; int difference = list1[i] - list2[i]; if (difference > 0) { sum += difference; } else { sum -= difference; } } cout << "distance between lists is: " << sum << endl; // PART 2 /// sum up similarities int sim_score = 0; for (int i = 0; i < list1.size(); i++) { sim_score += list1[i] * count(list1[i], list2); } cout << "similarity score is: " << sim_score << endl; return 0; }