198565
26.05.2022 23:45

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

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
CorgiDog
20.01.2021 13:02

Объяснение:

Чтобы предотвратить возможные конфликты несовместимости разрешений при принудительной установке пользовательского режима, поставьте флажок на нижнем пункте настроек масштабирования.

В левом меню найдите вкладку под названием «Настройки масштабирования» и переместите ползунок на панели «Сжатая развертка – Растянутая развертка» так, чтобы изображение заполнило экран целиком. Кроме того, убедитесь, что изображение отображается строго точно по центру. В противном случае некоторые его части могут быть усечены.

0,0(0 оценок)
Ответ:
dilnuscha
07.01.2020 03:52

#include <iostream>

#include <vector>

using namespace std;

bool isLeap(int y){

   return (y % 400 == 0 || (y % 4 == 0 && y % 100 != 0));

}

signed main(){

   string s, cur;

   cin >> s;

   vector<int> d;

   for(int i = 0; i < s.length(); i++){

       if(s[i] == '.'){

           d.push_back(stoi(cur));

           cur.clear();

       }

       else

           cur += s[i];

   }

   d.push_back(stoi(cur));

   int k = d[0];

   d[1]--;

   while(d[1] > 0){

       if(d[1] == 2) k += 28 + isLeap(d[2]);

       else if((d[1] < 8 && d[1] % 2 == 1) || (d[1] >= 8 && d[1] % 2 == 0)) k += 31;

       else k += 30;

       d[1]--;

   }

   cout << (365 + isLeap(d[2])) - k + 1;

}

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