#include <iostream> #include <string> using namespace std; int convertLineToArrayAndReturnSum(string &str, int (&arr)[18]) { string delimiter = " "; int sumOfPoints = 0; size_t pos = 0; int i = 0; string token; int intToken; while ((pos = str.find(delimiter)) != string::npos) { token = str.substr(0, pos); intToken = stoi(token); arr[i] = intToken; sumOfPoints += intToken; str.erase(0, pos + delimiter.length()); i++; } intToken = stoi(str); arr[i] = intToken; sumOfPoints += intToken; return sumOfPoints; } int countOccurrences(int (&arr)[18], int numb) { int count = 0; for(int i = 0; i < 18; i++) { if(arr[i] == numb) { count += 1; } } return count; } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); string algosia, bajtek; getline (cin, algosia); getline (cin, bajtek); int first[18]; int second[18]; int firstSum = convertLineToArrayAndReturnSum(algosia, first); int secondSum = convertLineToArrayAndReturnSum(bajtek, second); //printArr(first); // checking if it isnt draw and we can get already a winner if(firstSum > secondSum) { cout << "Algosia\n"; return 0; } else if(firstSum < secondSum) { cout << "Bajtek\n"; return 0; } // counting 10's and so on int firstOccurrences, secondOccurrences; for(int i = 10; i > 0; i--) { firstOccurrences = countOccurrences(first, i); secondOccurrences = countOccurrences(second, i); if(firstOccurrences > secondOccurrences) { cout << "Algosia\n"; return 0; } else if(firstOccurrences < secondOccurrences) { cout << "Bajtek\n"; return 0; } } cout << "remis\n"; return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | #include <iostream> #include <string> using namespace std; int convertLineToArrayAndReturnSum(string &str, int (&arr)[18]) { string delimiter = " "; int sumOfPoints = 0; size_t pos = 0; int i = 0; string token; int intToken; while ((pos = str.find(delimiter)) != string::npos) { token = str.substr(0, pos); intToken = stoi(token); arr[i] = intToken; sumOfPoints += intToken; str.erase(0, pos + delimiter.length()); i++; } intToken = stoi(str); arr[i] = intToken; sumOfPoints += intToken; return sumOfPoints; } int countOccurrences(int (&arr)[18], int numb) { int count = 0; for(int i = 0; i < 18; i++) { if(arr[i] == numb) { count += 1; } } return count; } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); string algosia, bajtek; getline (cin, algosia); getline (cin, bajtek); int first[18]; int second[18]; int firstSum = convertLineToArrayAndReturnSum(algosia, first); int secondSum = convertLineToArrayAndReturnSum(bajtek, second); //printArr(first); // checking if it isnt draw and we can get already a winner if(firstSum > secondSum) { cout << "Algosia\n"; return 0; } else if(firstSum < secondSum) { cout << "Bajtek\n"; return 0; } // counting 10's and so on int firstOccurrences, secondOccurrences; for(int i = 10; i > 0; i--) { firstOccurrences = countOccurrences(first, i); secondOccurrences = countOccurrences(second, i); if(firstOccurrences > secondOccurrences) { cout << "Algosia\n"; return 0; } else if(firstOccurrences < secondOccurrences) { cout << "Bajtek\n"; return 0; } } cout << "remis\n"; return 0; } |