void solve() { Zero(num); dig = 0; while (n != 0) { FVi it = upper_bound(fis.begin(), fis.end(), Fi(n, 0)); --it; if (dig == 0) dig = it->d; num[it->d - 1] = 1; n -= it->f; } }