тимур370
25.02.2023 23:25

B. бонусная программа
ограничение времени 1 секунда
ограничение памяти 32mb
ввод bonus.in
вывод bonus.out
магазин бытовой техники использует новую интерактивную бонусную программу. после очередной покупки клиенту приходит сообщение о начислении бонусных , причем сумма бонусов отображается в сообщении звездочками. под каждой звездочкой скрывается цифра. клиенту предлагают зачеркнуть наугад две любые рядом стоящие звездочки - цифры, после чего число октрывается и из него убираются вычеркнутые наугад покупателем две цифры. получившееся количество бонусов зачисляется на счет. например, клиенту пришло сообщение с такой суммой бонусов: . клиент наугад вычеркнул 3-ю и 4-ю звездочки. после чего число открылось: 735491. далее включилась анимация и вычеркнутые цифры исчезли: 7391. на бонусный счет покупателя зачисляется 7391 бонусных . откроем алгоритмический секрет. исходное число, представляемое системой в виде звездочек, действительно выбирается случайным образом из диапазона от 1000 до включительно. но перед тем, как оно отправится покупателю в виде звездочек, число поступает на вход контрольного модуля. этот модуль определяет, какое наибольшее количество бонусов придется начислить клиенту, в случае максимального везения клиента. в зависимости от ответа контрольного модуля система может заново перегенерировать число. ваша написать этот контрольный модуль.

формат ввода
в первой строке входного файла bonus.in приводится сгенерированное системой число в закодированном виде - в виде звездочек. в следующей строке - оно же, но уже в открытом виде.

формат вывода
в выходной файл следует записать максимальное количество бонусов, которое будет зачислено покупателю, если он наиболее удачно зачеркнет два разряда.

пример
ввод вывод

946024
9464

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
sargsyana524
11.02.2021 11:00
Var
    A: array[1..100, 1..100] of integer;
    B: array[1..100]of integer;
    i, j, k, n, m, imax: integer;
    manual: boolean;

begin
    writeln('Ручной ввод (true/false)==>');
    read(manual);
    
    if manual then begin
        writeln('Размер массива n, m ==>');
        read(n, m);
    end
    else begin
        n := random(10) + 5;
        m := random(10) + 5;
    end;
    
    for i := 1 to n do
    begin
        writeln();
        for j := 1 to m do
        begin
            if manual then
                read(a[i, j])
            else begin
                a[i, j] := random(100) - 50;
                write(a[i, j]:3, ' ');
            end;
        end;
    end;
    
    writeln();
    writeln();
    
    for j := 1 to m do
        if j mod 2 = 1 then begin
            k := k + 1;
            b[k] := 1;
            for i := 1 to n do
                b[k] := b[k] * a[i, j];
            write(b[k], ' ');
        end;
    
    writeln();
    
    for i := 1 to k - 1 do
    begin
        imax := i;
        for j := i + 1 to k do
            if b[j] > b[imax] then
                imax := j;
        n := b[i];
        b[i] := b[imax];
        b[imax] := n;
    end;
    
    for i := 1 to k do
        write(b[i], ' ');
end.
0,0(0 оценок)
Ответ:
GgWp2213
11.02.2021 11:00
Uses crt;
const
q=1000;var
a:array[1..q,1..q]of integer;
m,n,i,j,c,k,buf:integer;
b:array[1..q]of integer;
begin 
   writeln('n,m ?')   ;
   readln(n,m);
    writeln('как заполнять матрицу ?');     
    writeln(' Нажмите 1 при датчика, 2 - ввод с клавиатуры'); 
{выбор действия при заполнении}                        
readln(c);   
              case c of         
                 1:for i:=1 to n do
                        begin
                            for j:=1 to m do
                               begin
                                   a[i,j]:=random(100);
                                    write(a[i,j]:4);
                                end;
                              writeln;
                         end;
                   2:
                    begin
                     for i:=1 to n do
                        begin
                            for j:=1 to m do
                              readln(a[i,j]);
                         end;
                          clrscr;
                       for i:=1 to n do
                           begin
                               for j:=1 to m do
                                  write(a[i,j]:4);
                               writeln;
                           end;
    end;
                 end;
writeln('формирование массива');
for i:=2 to n do
    begin
       if i mod 2=0 then
               for j:=1 to m do
                     if a[i,j]>2 then
                          begin
                              k:=k+1;
                               b[k]:=a[i,j];
                           end;
      end;
writeln;
for i:=1 to k do
    write(b[i]:4);
writeln;
{сортировка}
for i:=1 to k -1 do
     for j:=i+1 to k do
         if b[i]<b[j]then
             begin
                   buf:=b[i];
                   b[i]:=b[j];
                   b[j]:=buf;
             end;
{вывод массива}
for i:=1 to k do
    write(b[i]:4);
end.
                         
                    
                        
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота