Решение задачи Новый год и северный полюс с Codeforces

Без пояснения   Просмотров: 23


В данной задаче мы будем полагать, что планета Земля является идеальным шаром, а её поверхность — идеальной сферой. Длину экватора и любого меридиана будем считать равной в точности 40 000 километров. Таким образом, путешествие от Северного полюса к Южному полюсу или наоборот занимает 20 000 километров.

Полярный медвежонок Лимак живёт на Северном полюсе. Незадолго до нового года он помогает кое-кому развозить подарки по всему миру. К сожалению, вместо точных координат мест, которые Лимак должен посетить, ему выдали лишь описание маршрута движения, в предположении, что он начинает на Северном полюсе. Описание маршрута состоит из n частей. На i-м участке Лимак должен двигаться t i километров в направлении, определяемом строкой dir i, которая является одной из строк «North», «South», «West», «East». Данные направления означают движение на север, юг, запад и восток соответственно.

Лимак не уверен, что описание маршрута корректно. Помогите ему проверить выполнение следующих условий:

Если в некоторый момент времени (перед выполнением какой-либо инструкции или во время выполнения одной из них) Лимак находится на Северном полюсе, то он может двигаться только на юг.
Если в некоторый момент времени (перед выполнением какой-либо инструкции или во время выполнения одной из них) Лимак находится на Южном полюсе, то он может двигаться только на север.
Путешествие обязательно должно завершаться на Северном полюсе.
Проверьте, что все три условия выше выполняются и выведите «YES» или «NO».

Код

#include<bits/stdc++.h>
using namespace std;
int n,h,t;
string s;
bool f;
int main()
{
	cin >> n;
	for(int i = 0; i < n;i++)
	{
		cin >> t >> s;
		if(h == 0 && s != "South")
			f = 1;
		if(h == 20000 && s != "North")
			f = 1;
		if(s == "South")
			h += t;
		if(s == "North")
			h -= t;
		if(h > 20000 || h < 0)
			f = 1;
	}
	if(h != 0 || f)
		cout << "NO";
	else
		cout << "YES";
	return 0;
}

         

Администратор Photo Автор: Администратор



Комментарии

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