Danrukn
26.03.2020 09:46

: Лес Миша заблудился в лесу и пытается выйти. Он составил план маршрута выхода из леса. План состоит из 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 — координаты точки, в которой Миша выйдет из леса (то есть маршрут Миши впервые окажется на границе леса). Если же Миша не выйдет из леса, выведите координаты точки, в которой завершится его маршрут.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
СлавноваМаша
06.01.2021 20:26
Var a:array[1..100,1..100] of integer; i,j,n,m,max,min:integer; begin write ('Введите количество строк: '); read(n); writeln; write ('Введите количество элементов в строке: '); read(m); writeln; writeln('Введите массив: '); for i:=1 to n do begin for j:=1 to m do begin write(' a[',i,',',j,']='); read(a[i,j]); end; writeln; end; writeln; writeln('Исходный массив: '); for i:=1 to n do begin for j:=1 to m do write(a[i,j],' '); writeln; end; writeln; writeln('Конечный массив: '); for i:=1 to n do begin min:=a[i,1]; max:=a[i,1]; for j:=2 to m do begin if (min>a[i,j]) then min:=a[i,j]; if (max
0,0(0 оценок)
Ответ:
colins1987
08.11.2020 12:18
// PascalABC.Net 3.0, сборка 1066
var
  s, wd: string;
  n, pt: integer;

begin
  Write('Введите строку: ');Readln(s);
  n := Length(s); pt := 1;
  repeat
    // Пропускаем все символы до первого непробельного
    while pt <= n do
      if s[pt] = ' ' then Inc(pt) else break;
    if pt <= n then begin
      // Выделяем очередное слово
      wd := '';
      while pt <= n do
        if s[pt] <> ' ' then begin wd := wd + s[pt]; Inc(pt) end
        else break;
      if (wd <> '') and (LowCase(wd[1]) in ['м'..'я']) then Writeln(wd)
    end
  until pt > n;
end.

Тестовое решение:
Введите строку: **А роза    упала   на    лапу Азора    **
роза
упала
на

А вот так версия 3.0 позволяет решить задачу "по-современному":

// PascalABC.Net 3.0, сборка 1066
begin
  var s:=ReadString('Введите строку: ');
  Writeln('Результат: ',s.ToWords(' ').Where(x->x[1] in ['м'..'я']))
end.

Тестовое решение:
Введите строку:  **А роза    упала   на    лапу Азора    **
Результат: [роза,упала,на]
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота