Мерзовкусная диета Контрольная работа
макс.
Дедлайн: 21 дек. 17:06
Ограничение времени 1 секунда
Ограничение памяти 64Mb
Ввод стандартный ввод или input.txt
Вывод стандартный вывод или output.txt
— Вот он, препротивный шишгурец! — размахивая им, вскричал БДВ. — Я его не перевариваю, не пережариваю и ненаслышу! Только потому, что я отказываюсь есть человеконасекомых, как другие великаны, я должен есть мерзовкусные шишгурцы! Если я откажусь, от меня останутся только кожа да трости!
— Вы хотите сказать кожа да кости? — спросила Софи.
— Сам знаю, что кости, — ответил БДВ постарайся понять, что иногда я перепутываюсь и передумываюсь, но всегда стараюсь изо всех вил выговаривать слова правильно.
не запутаться в дебрях слов, напишите программу.
Формат ввода
Вводится число – количество строк в списке.
Затем вводятся строки из чисел, записанных через пробел.
Формат вывода
Вывести словарь, в котором ключи – это числа из второго столбца матрицы, а значения – список из максимального числа, которое можно составить из остальных цифр той же строки без повторений. Если в столбце встречаются одинаковые числа, то значения добавляются в один список, который затем сортируется по возрастанию.
Пример 1
Ввод Вывод
3
11 2 3 40
53 2 3 1
24 1 12 3
{2: [531, 4310], 1: [4321]}
Пример 2
Ввод Вывод
4
11 3 7 8 0
7 6 22 3 1
1 3 0 8 3
0 3 3 7 71
{3: [7310, 8310, 8710], 6: [7321
n,k,i:integer;
begin
for n:=1 to 2 do
begin
writeln('Введите строку ',n,':');
readln(s);
k:=0;
for i:=1 to length(s) do
begin
case s[i] of
'[': k:=k+1;
']': k:=k-1;
end;
end;
if k=0
then writeln('В строке ',s,' количество [ и ] одинаково')
else writeln('В строке ',s,' количество [ и ] не одинаково');
end;
end.
Пример:
Введите строку 1:
c:=a[imax,j]; a[imax,j]:=a[imin,j]; a[imin,j]:=c
В строке c:=a[imax,j]; a[imax,j]:=a[imin,j]; a[imin,j]:=c количество [ и ] одинаково
Введите строку 2:
Просто [ пример ]] со [[ скобками
В строке Просто [ пример ]] со [[ скобками количество [ и ] не одинаково
begin
var a:=ReadLines('m17.txt').JoinIntoString.ToIntegers;
a.Println;
var b:=a.Select((x,i)->Rec(x,i)).Where(x->x.Item1<0)
.Select(x->x.Item2).ToArray;
if b.Count<>2 then
Writeln('Количество отрицательных элементов не равно двум')
else begin
a:=SeqFill(b[0],0).Concat(a.Skip(b[0]).Take(b[1]-b[0]+1))
.Concat(SeqFill(a.Length-b[1]-1,0)).ToArray;
a.Println
end
end.
Тестовое решение:
23 14 7 15 0 13 -6 41 18 13 8 42 27 -11 3 19 10
0 0 0 0 0 0 -6 41 18 13 8 42 27 -11 0 0 0
Файл с исходными данными имеет имя m17.txt. Тестовый файл находится во вложении. Разбивка на строки сделана по 5 значений, но может быть совершенно произвольной. Также нет привязки именно к 17 числам, главное - чтобы отрицательных чисел было ровно два, иначе будет выдано сообщение о их неверном количестве.