#include #include #include #include #include #include int main() { int n = 0; std::cin >> n; bool found = false; std::vector< int > v; for( int i = 0; i < n; ++i ) { int tmp; std::cin >> tmp; v.push_back(tmp); } std::sort(v.begin(), v.end()); int sum = std::accumulate(v.begin(), v.end(), 0); int h = sum/2; if(sum % 2 == 0) for( auto it = v.rbegin(); it != v.rend(); ++it ) { //std::cout << "it: " << *it << std::endl; if(sum - *it >= h ) { sum -= *it; } else { sum -= *it; h -= *it; } //std::cout << "sum: " << sum << ", half:" << h << std::endl; } if( sum == 0 && h == 0 ) found = true; if( found ) std::cout << "possible" << std::endl; else std::cout << "impossible" << std::endl; }