#include <iostream>
#include <iomanip>
#include <cmath>
bool g( const int a[], int n )
{
int long long sum = 0;
int i = 0;
long long int target = (1<<n)-1;
for ( ; i < n && a[i] > 0 ; i++ ) sum += 1<<a[i]-1;
return i == n && sum == target;
}
int main()
{
const int N = 6;
int t[N] = { 6, 2, 3, 4, 5, 1 };
std::cout << std::boolalpha << g( t, N ) << std::endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KI2luY2x1ZGUgPGNtYXRoPgoKYm9vbCBnKCBjb25zdCBpbnQgYVtdLCBpbnQgbiApCnsKICAgIGludCBsb25nIGxvbmcgc3VtID0gMDsKICAgIGludCBpID0gMDsKICAgIGxvbmcgbG9uZyBpbnQgdGFyZ2V0ID0gKDE8PG4pLTE7CgogICAgZm9yICggOyBpIDwgbiAmJiBhW2ldID4gMCA7IGkrKyApIHN1bSArPSAxPDxhW2ldLTE7CgogICAgcmV0dXJuIGkgPT0gbiAmJiBzdW0gPT0gdGFyZ2V0Owp9ICAgCgppbnQgbWFpbigpIAp7CiAgICBjb25zdCBpbnQgTiA9IDY7ICAgICAgICAKICAgIGludCB0W05dID0geyA2LCAyLCAzLCA0LCA1LCAxIH07IAoKICAgIHN0ZDo6Y291dCA8PCBzdGQ6OmJvb2xhbHBoYSA8PCBnKCB0LCBOICkgPDwgc3RkOjplbmRsOwp9Cg==