func_code_string: #include <bits/stdc++.h>   using namespace std;   template <typename T>   ostream& operator<<(ostream& s, vector<T> const& v) {     s <<  { ;     for (int i = 0; i < int(v.size()); i++) s << (i ?  ,  :   ) << v[i];     return s <<  } ;   }   template <typename S, typename T>   ostream& operator<<(ostream& s, pair<S, T> const& p) {     return s <<  (  << p.first <<  ,  << p.second <<  ) ;   }   constexpr int MAXN = 100005;   long long minSum(long long n, long long b, long long init, long long l) {     if (b == 1) return ((n + 1) * (n + 2)) / 2 - 1;     long long rem = n, clev = init, ans = 0;     while (rem > 0) {       long long use = min(rem, clev);       rem -= use;       ans += l * use;       clev *= b;       ++l;     }     return ans;   }   bool sv() {     long long N, S;     scanf( %lld%lld , &N, &S);     long long maxBr = 1;     while (maxBr < N && 1 + minSum(N - 1, maxBr, maxBr, 2) > S) ++maxBr;     if (maxBr == N) return false;     long long remN = N - 1, remS = S - 1, curlev = 2, plev = 1;     vector<long long> layers;     while (remN > 0) {       long long a = 0, b = plev * maxBr;       while (b - a > 1) {         long long c = (a + b) / 2;         if (minSum(remN, maxBr, c, curlev) > remS)           a = c;         else           b = c;       }       layers.push_back(b);       remN -= b;       remS -= curlev * b;       ++curlev;       plev = b;     }     if (remS) return false;     vector<int> ans(N);     long long cur = 1;     for (int i = 0; i < int(layers.size()); i++) {       long long pLayer = i ? layers[i - 1] : 1;       long long oldCur = cur;       long long rem = layers[i];       for (int j = oldCur - pLayer; j < int(oldCur); j++) {         for (int k = 0; k < int(maxBr); k++) {           if (rem > 0) {             ans[cur] = j;             --rem;             ++cur;           } else {             goto dn;           }         }       }     dn:;     }     puts( Yes );     for (int i = 1; i < int(N); i++)       printf( %d%c , ans[i] + 1, i == N - 1 ?   n  :    );     return true;   }   int main() {     if (!sv()) puts( No );   }   