#include <iostream>
#include <cmath>
#define LL long long
#define MAX_SIZE 210000
using namespace std;
void add_coin(unsigned int coin, bool *coins, unsigned int &max_coin) {
if (coins[coin]) {
coins[coin] = false;
add_coin(coin + 1, coins, max_coin);
} else {
coins[coin] = true;
if (coin > max_coin)
max_coin = coin;
}
}
int main()
{
unsigned int N, coin, max_coin = 0;
bool coins[MAX_SIZE];
for (unsigned int i = 0; i < MAX_SIZE; i++ )
coins[i] = false;
cin >> N;
for (unsigned int i = 0; i < N; i++) {
cin >> coin;
add_coin(coin, coins, max_coin);
}
cout << max_coin << endl;
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 | #include <iostream> #include <cmath> #define LL long long #define MAX_SIZE 210000 using namespace std; void add_coin(unsigned int coin, bool *coins, unsigned int &max_coin) { if (coins[coin]) { coins[coin] = false; add_coin(coin + 1, coins, max_coin); } else { coins[coin] = true; if (coin > max_coin) max_coin = coin; } } int main() { unsigned int N, coin, max_coin = 0; bool coins[MAX_SIZE]; for (unsigned int i = 0; i < MAX_SIZE; i++ ) coins[i] = false; cin >> N; for (unsigned int i = 0; i < N; i++) { cin >> coin; add_coin(coin, coins, max_coin); } cout << max_coin << endl; return 0; } |
English