Задача Кафе n = int(input()) P = [0] for i in range(n): P.append(int(input())) inf = 1000000000 B = [[0 for j in range(n + 1)] for i in range(n + 1)] B[0][0] = 0 for j in range(1, n + 1): B[0][j] = inf for i in range(1, n + 1): for j in range(n + 1): if P[i] < 101: if j != n: B[i][j] = min(B[i - 1][j] + P[i], B[i - 1][j + 1]) else: B[i][j] = B[i - 1][j] + P[i] else: if j != 0 and j != n: B[i][j] = min(B[i - 1][j - 1] + P[i], B[i - 1][j + 1]) elif j == n: B[i][j] = B[i - 1][j - 1] + P[i] else: B[i][j] = B[i - 1][j + 1] print(min(B[n])) minimum = 0 for i in range(n + 1): if B[n][i] <= B[n][minimum]: minimum = i k1 = minimum j = k1 Ans = [] for i in range(n, 0, -1): if P[i] < 101: if j < n and B[i - 1][j + 1] == B[i][j]: j += 1 Ans = [i] + Ans else: if j < n and B[i - 1][j + 1] == B[i][j]: j += 1 Ans = [i] + Ans else: j -= 1 k2 = len(Ans) print (k1, k2) print(' '.join(str(i) for i in Ans)) Игра с палочками n = int(input()) DP = [0 for i in range(n + 1)] # 0 - начинающий проиграет (красная) for i in range(1, n + 1): if DP[i - 1] == 0: DP[i] = 1 # 1 - начинающий выиграет (зеленая) if i % 2 == 0 and DP[i // 2] == 0: DP[i] = 1 if i % 3 == 0 and (DP[i // 3] == 0 or DP[i // 3 * 2] == 0): DP[i] = 1 if DP[n] == 0: print('Second') else: print('First')