Билеты на поезд
даниил организует поездку школьников на олимпиаду по программированию. поезд, на котором планируется добраться до места проведения олимпиады, уже выбран; осталось лишь купить билеты. на данный момент свободные места остались в n купе, притом в i-м из этих купе свободно ровно ai мест.

чтобы школьникам было нескучно, им была предоставлена возможность объединиться в пары или тройки, которые будут ехать в одном купе. всего k2 пар и k3 троек школьников изъявили желание путешествовать в одном купе. оставшиеся k1 школьников не высказали никаких предпочтений. все эти школьники различны, то есть всего на олимпиаду поедет k1 + 2×k2 + 3×k3 школьников.

определите, возможно ли купить билеты так, чтобы все пожелания были удовлетворены. даниил уже купил себе билет, то есть его брать в расчет не нужно.

формат входных данных
первая строка содержит одно целое число t (1 ≤ t ≤ 100) — количество тестов. далее следует описание t тестов. каждый из тестов описывается тремя строками.

первая строка описания теста содержит одно целое число n (1 ≤ n ≤ 105) — количество оставшихся купе.

вторая строка описания теста содержит n целых чисел a1, a2, …, an (1 ≤ ai ≤ 4) — количества свободных мест в оставшихся купе.

третья строка описания теста содержит три целых числа k1, k2 и k3 (0 ≤ ki ≤ 4×105) — количество школьников, которые не высказали никаких предпочтений, а также количество пар школьников и количество троек школьников, желающих быть в одном купе, соответственно.

гарантируется, что сумма всех n не превосходит 105.

формат результата
выведите t строк, i-я из которых содержит «yes», если в i-м тесте возможно купить билеты, удовлетворив все пожелания, и «no» в противном случае.

sarvaryusuf99 sarvaryusuf99    2   16.11.2019 10:09    0

Ответы
ser73 ser73  10.10.2020 13:32
")

   a.append(k)

l = 0

for i in range(len(a)):

   if a[i]>=3:

       l = l+1

       a[i] = a[i]-3

       if l == three:

           break

print(l,"тройки")

print(a)

j = 0

for i in range(len(a)):

   if a[i]>=2:

       j = j+1

       a[i] = a[i]-2

       if j == two:

           break

print(j,"двойки")

print(a)

m = 0

for i in range(len(a)):

   if a[i]>=1:

       m = m+1

       a[i] = a[i] - 1

       if m == one:

           break

print(m,"одиночки")

print(a)

if l>=three and j>=two and m>=one:

   print("YES")

else:

   print("NO")

Объяснение:

надеюсь в коде разберешься )

написано в питоне

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика