baukovaevgehia2
20.05.2022 01:10

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

Система оценки
Решения, правильно работающие, когда все входные числа не превосходят 100, будут оцениваться в

Пример
Ввод

Вывод

Пояснение

3
6
2
1
3
3
5
4

-2 3

На рисунке изображён первый пример из условия. Расстояние от начального расположения Миши до стороны квадрата равно 3. Маршрут Миши состоит из 6 отрезков, их длины 2, 1, 3, 3, 5, 4. Первоначальное расположение Миши (точка (0, 0)) и место, где Миша выйдет из леса (точка (-2, 3)) отмечены синими кругами. Отметим, что Миша выйдет из леса на предпоследнем отрезке намеченного пути.

2
1
1

0 1

Во втором примере из условия путь Миши состоит из одного отрезка длины 1 на сервер, а до границы леса расстояние 2, поэтому Миша закончит путь в клетке (0, 1) не выйдя из леса.

Сдать решение

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
nikav92com
15.10.2022 11:52
Begin
  for var v := 100 to 150 do begin //возраст от 100 до 150 лет
        
 var q := Sqr(StrToInt(IntToStr(v)[1]))    //Суммируем квадраты каждой цифры
           + Sqr(StrToInt(IntToStr(v)[2]))    //из возможного возраста
           + Sqr(StrToInt(IntToStr(v)[3]));   //и записываем его в q

   for var d := 1 to 31 do begin                //Берем день месяца от 1 до 31
      if (q + d) = v then begin                    //Если q + день = возрасту
        println('День:', D, ' Возраст: ', v);   //Выводим сообщение
      end;
    end;
  end;
end.
0,0(0 оценок)
Ответ:
123456qwe1234567
09.07.2020 22:35
#include "stdafx.h"
#include <stdio.h>
#include <windows.h>

int main()  
  {
    SetConsoleCP(1251);      
    SetConsoleOutputCP(1251);  
 
int const n=3;
int mas[n][n];
int sum1, sum2;
bool magik;

for (int i=0; i<n; i++)
    for (int j=0; j<n; j++)
         {
           printf("mas[%d][%d] = ", i+1, j+1);
           scanf("%d",&mas[ i ][ j ]);
         }

printf("\nВведенная матрица:\n");
     for (int i=0; i<n; i++)
        {
             for (int j=0; j<n; j++)
                       {
                          printf("%d  ",mas[ i ][ j ]);
                       }
             printf("\n");
         }

sum1=0;
sum2=0;

for (int i = 0; i<n; i++)
     {
            sum1 += mas[ i ][ i ];
            sum2 += mas[ i ][ n-1-i ];
      }

printf("Сумма главной диагонали = %d\n", sum1);
printf("Сумма побочной диагонали = %d\n", sum2);

magik = true;
for (int i=0; i<n; i++)
    {
        if (sum1==sum2)
             {
                 sum2=0;
                 for (int j=0; j<n; j++)
                    {
                        sum2 += mas[ i ][ j ];
                     }
              } else  { magik=false; break; }
     }

if (magik==true)
     {
           for (int i=0; i<n; i++)    
               {
                   if (sum1==sum2)
                        {
                           sum2=0;
                           for (int j=0; j<n; j++)
                               {
                                   sum2 += mas[ j ][ i ];
                               }
                         }
                        else  { magik=false; break; }
                 }
       }

if (magik==true)
    printf("\nМатрица является магическим квадратом\n");  
else
    printf("\nМатрица не является магическим квадратом\n");

system("pause");
return 0;
}
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота