Решение задачи "Старт коллайдера" с Codeforces

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


Совсем скоро произойдёт запуск самого нового, мощного и необычного коллайдера, который расположен вдоль прямой. В нём будут запущены n частиц. Все они расположены на одной прямой, причем в одной точке не может быть двух или более частиц. Координаты частиц совпадают с расстоянием в метрах от центра коллайдера, то есть x i — это и координата i-й частицы, и одновременно её позиция в коллайдере. Все координаты частиц — целые чётные числа.

Про каждую частицу известно направление её движения — она будет двигаться либо влево, либо вправо после старта коллайдера. Все частицы начнут двигаться одновременно в момент старта коллайдера. Каждая частица будет двигаться ровно влево или ровно вправо с постоянной скоростью 1 метр в микросекунду. Считайте, что коллайдер достаточно большой, и частицы не могут вылететь из него за обозримое время.

Напишите программу, которая найдет момент первого столкновения двух каких-либо частиц коллайдера. Иными словами, требуется найти количество микросекунд до первого такого момента, когда какие-либо две частицы окажутся в одной точке.

Код

#include<bits/stdc++.h>
using namespace std;
int n,a[400000],mn=1e9;
string s;
int main()
{
	cin>>n>>s>>a[0];
	for(int i=1;i<n;i++)
	{
		cin>>a[i];
		if(s[i-1]=='R'&&s[i]=='L')
			mn=min(mn,(a[i]-a[i-1])/2);
	}
	if(mn==1e9)
		cout<<-1;
	else
		cout<<mn;
	return 0;
}

         

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


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

Комментарии

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