#define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; bool solve(const vector& a, int x, vector& ans) { int n = a.size(); vector dp(x+1, -1); dp[0] = 0; for(int i=0; i=a[i]; --j){ if(dp[j] == -1 && dp[j-a[i]] != -1) dp[j] = i; } } if(dp[x] == -1) return false; ans.assign(n, false); int i = x; while(i != 0){ ans[dp[i]] = true; i -= a[dp[i]]; } return true; } int main() { int n; long long x; cin >> n >> x; vector a, b; vector aIndex, bIndex; for(int i=0; i> c; if(c < 20000){ a.push_back(c); aIndex.push_back(i); } else{ b.push_back(c); bIndex.push_back(i); } } int aSum = accumulate(a.begin(), a.end(), 0); int m = b.size(); for(int i=0; i<(1< bs(i); long long y = x; for(int j=0; j used; if(solve(a, (int)y, used)){ string ans(n, 'x'); for(int j=0; j