7730
static int N, M; static int trees[1000000]; static int cmp(const void * p1, const void * p2) { int n1 = *(int *)p1; int n2 = *(int *)p2; return n2 - n1; } static int solution(void) { int H, ret = 0; scanf("%d %d", &N, &M); for (int i = 0; i < N; i++) scanf("%d", &trees[i]); qsort(trees, N, sizeof(int), cmp); int max = trees[0], min = 0; while (min H; i++) sum += (trees[i] - H); if (sum < M) max ..
5644
static int N, X, M, L, R, S, turn, maximum = -1; static int equation[6 + 1]; static int grps[6 + 1]; static int ans[6 + 1]; static vector all[10]; static void get_all_comb(int cnt, int v) { if (cnt > N) { if (v == S) { target c(7); for (int i = 1; i < cnt; i++) c[i] = grps[i]; all[turn].push_back(c); } return; } if (equation[cnt]) { for (int i = 0; i N) check(cnt + 1); memcpy(grps, cpy, sizeof(g..