#include <stdlib.h> #include <iostream> #include <vector> #include <string> #include <sstream> #include <algorithm> using namespace std; int main() { vector <int> monety; long liczbaMonet; //wczytywanie liczby monet string str1; getline(cin, str1); istringstream sstr(str1); sstr >> liczbaMonet; //wczytywanie jakie to sa monety string str2; if (getline(cin, str2)) { istringstream sstr(str2); int n; while (sstr >> n) monety.push_back(n); } sort(monety.begin(), monety.end()); if (monety.size() == 1) { cout << monety[0]; return 0; } bool zmaina = false; int i = 0; for (i = 0; i < monety.size() - 1; i++) { if (monety[i] == monety[i + 1] && monety[i] != -1) { monety[i + 1] = monety[i + 1] + 1; monety[i] = -1; zmaina = true; } if (i == monety.size() - 2 && zmaina == true) { zmaina = false; sort(monety.begin(), monety.end()); i = 0; } } cout << monety[monety.size() - 1]; 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 | #include <stdlib.h> #include <iostream> #include <vector> #include <string> #include <sstream> #include <algorithm> using namespace std; int main() { vector <int> monety; long liczbaMonet; //wczytywanie liczby monet string str1; getline(cin, str1); istringstream sstr(str1); sstr >> liczbaMonet; //wczytywanie jakie to sa monety string str2; if (getline(cin, str2)) { istringstream sstr(str2); int n; while (sstr >> n) monety.push_back(n); } sort(monety.begin(), monety.end()); if (monety.size() == 1) { cout << monety[0]; return 0; } bool zmaina = false; int i = 0; for (i = 0; i < monety.size() - 1; i++) { if (monety[i] == monety[i + 1] && monety[i] != -1) { monety[i + 1] = monety[i + 1] + 1; monety[i] = -1; zmaina = true; } if (i == monety.size() - 2 && zmaina == true) { zmaina = false; sort(monety.begin(), monety.end()); i = 0; } } cout << monety[monety.size() - 1]; return 0; } |