#include #include #include #include using namespace std; int main() { int n; cin >> n; vector w(n); for (int i = 0; i < n; ++i) { cin >> w[i]; } int sum = accumulate(w.begin(), w.end(), 0); if (sum % 2 == 1) { cout << "impossible" << endl; return 0; } int lim = sum / 2; vector> cache(lim + 1, vector(n + 1, false)); cache[0][0] = true; for (int i = 1; i <= lim; ++i) { for (int j = 1; j <= n; ++j) { bool result = false; for (auto wi : w) { if (i >= wi) { result |= cache[i - wi][j - 1]; } } cache[i][j] = result; } } bool result = false; for (int i = 1; i <= n; ++i) { result |= cache[lim][i]; } cout << (result ? "possible" : "impossible") << endl; return 0; }