#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; } |
English