Надо
билеты на поезд
даниил организует поездку школьников на олимпиаду по программированию. поезд, на котором планируется добраться до места проведения олимпиады, уже выбран; осталось лишь купить билеты. на данный момент свободные места остались в 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» в противном случае.
примеры
входные данные
2
2
3 4
1 1 1
2
3 4
1 2 1
результат работы
yes
no
входные данные
3
1
2
0 1 0
5
4 3 1 4 1
2 4 1
4
1 4 3 2
0 0 3
результат работы
yes
yes
no
примечания
в первом тесте первого примера школьника-одиночку и пару школьников можно посадить во второе купе, а тройку — в первое. во втором тесте первого примера купить билеты, удовлетворив все пожелания, не выйдет, потому что всего осталось 3 + 4 = 7 билетов, а школьников 1 × 1 + 2 × 2 + 1 × 3 = 8.
var n,i:integer;
mass:array[1..10000] of integer;
begin
writeln('Введите кол-во чисел');
read(n);
for i:=1 to n do
begin
write('mass[',i,']=');
read(mass[i]);
end;
writeln('Элементы массива которые четные и двухначные');
for i:=1 to n do
if (mass[i] mod 2=0) and (mass[i] div 10>0) and (mass[i] div 10<10) then write(mass[i]:4);
end.
2.
var n,i:integer;
mass:array[1..10000] of integer;
begin
writeln('Введите кол-во чисел');
read(n);
for i:=1 to n do
begin
write('mass[',i,']=');
read(mass[i]);
end;
writeln('Элементы массива которые кратны 4 и трехзначные');
for i:=1 to n do
if (mass[i] mod 4=0) and (mass[i] div 100>0) and (mass[i] div 100<10) then write(mass[i]:4);
end.
3.
var i,a,m:integer;
begin
m:=3;
for i:=1 to 10 do
writeln(i,' * ',m,' = ',i*m);
end.
var
x:integer;
begin
for x:=5 to 15 do Writeln('x=',x:2,' y=',2*x)
end.
Результат выполнения программы:
x= 5 y=10
x= 6 y=12
x= 7 y=14
x= 8 y=16
x= 9 y=18
x=10 y=20
x=11 y=22
x=12 y=24
x=13 y=26
x=14 y=28
x=15 y=30
Задание №2
var
x:real;
begin
x:=1;
while x<=2 do begin
Writeln('x=',x:4:1,' y=',sin(3*x):8:5);
x:=x+0.3
end
end.
Результат выполнения программы:
x= 1.0 y= 0.14112
x= 1.3 y=-0.68777
x= 1.6 y=-0.99616
x= 1.9 y=-0.55069
Задание №3
const
n=40;
var
i:integer;
a:real;
begin
for i:=1 to n do
begin Write('a',i,'='); Read(a); Writeln('S=',sqr(a)) end
end.
Фрагмент работы программы:
a1=2.6
S=6.76
a2=4.18
S=17.4724
a3=1
S=1
a4=17
S=289
a5=