Всвязи с ремонтом в квартире в городе кубитляндия, кубит кубитович решил пойти в магазин, чтобы выбрать шторы для своей комнаты. шторы в кубитляндии имеют вид прямоугольника размера n∗m, разделенного на сектора размера 1∗1, где каждый сектор имеет свой цвет. цвета обозначаются строчными латинскими буквами. как известно кубит кубитович предпочитает те шторы, где используется только два цвета, а также используется узор "полоска", если узор на шторе не корректный, или штора имеет не любимую раскраску, то он считает что эта штора ему не подходит, и он сразу переходит к просмотру следующей. корректным узором "полоска" является набор прямоугольников, каждый из которых имеет сплошной цвет и заполняет полностью одну или несколько линий по вертикали или по горизонтали. подробнее о узоре "полоска" в примечании. найти кол-во штор, которые понравятся кубиту кубитовичу. известно что он посетит магазин с t шторами. входные данные первая строка содержит целое число t (1≤t≤10000) – обозначающее количество штор. далее следует t описаний штор, где в первой строке описания находится два целых числа n и m (1≤n,m≤50) - размер шторы, затем следует n строк, по m столбцов содержащие строчные латинские буквы pi,j ('a' ≤ pi,j ≤ 'z'), где pi,j - цвет сектора.
1. Чтобы решить задачу, надо определить, какое количество варенья съест Машенька за 20 дней. Вначале вычислим это количество в ложках, если известно, что за день она съедает по 5 ложек варенья:
5 * 20 = 100 ложек.
2. Теперь переведем 100 ложек варенья в граммы, если известно, что каждая ложка помещает 5 г варенья:
100 * 5 = 500 грамм.
3. Если исходное количество варенья составляет 650 грамм, тогда вычтем из этой массы ту часть, что съест Машенька за 20 дней и получим массу оставшегося варенья через 20 дней:
650 - 500 = 150 грамм.
ответ: получили, что через 20 дней в банке останется всего 150 грамм варенья.
procedure TfrmMain.FindFilesOnDisk(Dir : string);
var SR : TSearchRec;
Err : integer;
i, j : integer;
st : string;
begin
if (Dir[Length(Dir)] <> '\') then Dir := Dir + '\';
Err := FindFirst(Dir + '*.*', faAnyFile, SR);
while Err = 0 do
begin
j := 0;
st := AnsiUpperCase(SR.Name);
if lbDirs.Items.Count > 0 then //Если в списке есть каталоги
//Проверить, нет ли среди них
for i := 0 to lbDirs.Items.Count - 1 do
if lbDirs.Items[i] = st then //найденного
begin
j := 1;
break;
end; //if lbDirs.Items[i] = st then
if j = 0 then
begin
if (SR.Name <> '.') and
(SR.Name <> '..') and
((SR.Attr and faDirectory) <> 0) then
begin
inc(NumDir);
DirList.Add(Dir + st);
frmMain.sbMain.Panels[1].Text := IntToStr(NumDir);
pbFind.Position := NumDir;
Application.ProcessMessages;
FindFilesOnDisk(Dir + SR.Name);
end; //if (SR.Name <> '.') and
end; //if j = 0 then
Err := FindNext(SR);
end;
end;
Объяснение: