ŦáêHŷùnģ
12.03.2021 03:40

: Лес Миша заблудился в лесу и пытается выйти. Он составил план маршрута выхода из леса. План состоит из N прямолинейных отрезков пути. Сначала Миша идёт a1 метров на север, потом a2 метров на восток, потом a3 метров на юг, затем a4 метров на запад, затем он опять начинает повторять направления в порядке север, восток, юг, запад, то есть a5 метров он проходит на север, a6 метров на восток и т.д.

Оказалось, что для того, чтобы выйти из леса из его первоначальной точки, ему нужно было пройти ровно K метров в любом из четырёх направлений, то есть первоначально Миша находится в центре квадрата со стороной 2K метров.

Введём систему координат, в которой Миша первоначально находился в центре координат, ось OX направлена на восток, ось OY направлена на север, а единица измерения равна 1 метру. Определите, в какой точке Миша выйдет из леса (впервые окажется на границе леса), если будет следовать своему плану, или в какой точке его маршрут закончится, если он не выйдет из леса.

Входные данные
Первая строка входных данных содержит целое положительное число K (1 ≤ K ≤ 109) — расстояние от начального расположения Миши до четырёх сторон квадрата (границ леса). Вторая строка содержит целое положительное число N (1 ≤ N ≤ 105) — количество отрезков в плане перемещений Миши. Следующие N строк содержат по одному числу a1, a2, ..., aN (1 ≤ ai ≤ 109) — длины отрезков в плане Миши в направлениях север, восток, юг, запад и т.д.

Выходные данные
Программа должна вывести два целых числа x и y — координаты точки, в которой Миша выйдет из леса (то есть маршрут Миши впервые окажется на границе леса). Если же Миша не выйдет из леса, выведите координаты точки, в которой завершится его маршрут.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
FedorShar28
12.12.2022 01:11
Var
   X,Y,K:integer;
   E,p:real;
Begin
Write('Сколько яблок в наличии: ');ReadLn(X);
Write('Сколько человек: ');ReadLn(Y);
Write('Сколько долларов за одно яблоко: ');ReadLn(E);
Write('Сколько рублей за один доллар: ');ReadLn(p);
if X mod 5 <> 0 then K:=X+5-(X mod 5)
else K:=X;
While K/Y<1.66 do K:=K+5;
WriteLn('Требуемое количество яблок: ',K);
WriteLn('Столько яблок придётся докупить: ',K-X);
WriteLn('Стоимость докупленных яблок: ',(K-X)*E*p:0:2,' руб.');
End.

Пример:

Сколько яблок в наличии: 1
Сколько человек: 3
Сколько долларов за одно яблоко: 50
Сколько рублей за один доллар: 0.05
Требуемое количество яблок: 5
Столько яблок придётся докупить: 4
Стоимость докупленных яблок: 10.00 руб.
0,0(0 оценок)
Ответ:
Viktori1111112111
06.06.2020 18:10
1 вариант через строку

var 
  n,a,k,sum,i,j: integer; 
  s: string; 
begin
  sum:=0; 
  write ('Введите количество чисел: ');
  readln (n);
  for i:=1 to n do begin 
    write ('Введите число: ');
    readln (a);
    Str(a,s);
    k:=0;
    for j:=1 to length(s) do 
      if s[j]='5' then k:=k+1;
    if k=2 then sum:=sum+a;
  end;  
  writeln ('Sum = ',sum);
end.

2 вариант через div и mod

var 
  n,a,x,k,sum,i: integer; 
begin
  sum:=0; 
  write ('Введите количество чисел: ');
  readln (n);
  for i:=1 to n do begin 
    write ('Введите число: ');
    readln (a);
    x:=abs(a);
    k:=0;
    while x>0 do begin
      if x mod 10 =5 then k:=k+1;
      x:=x div 10;
    end;
    if k=2 then sum:=sum+a;
  end;  
  writeln ('Sum = ',sum);
end.

пример результата:

Введите количество чисел: 3
Введите число: 550001
Введите число: -550000
Введите число: 123456
Sum = 1
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота