Вася решил немного попутешествовать и подсчитал, сколько стоит переезд между каждой парой близлежащих городов. После этого он наметил маршрут – последовательность городов, которые он хотел посетить. Напишите программу, которая считает общие транспортные расходы на путешествие. Некоторые города не связаны дорогами, так что проехать напрямую из одного города в другой не всегда возможно.
Входные данные
В первой строке вводится количество городов N ( 1 ≤ N ≤ 1000 ). В следующих N строках записано по N чисел, разделённых пробелами – стоимость переезда между каждой парой городов. Ноль означает, что дороги между этими городами нет. В последней строке записаны номера городов, которые хотел посетить Вася. Их может быть от 1 до 1000, они могут повторяться. Нумерация городов начинается с единицы.
Выходные данные
Программа должна вывести одно число – общую стоимость путешествия по такому маршруту или число 0, если на каком-то этапе прямой переезд из одного города в другой невозможен.
входные данные
5
0 2 3 4 3
2 0 5 0 7
3 6 0 8 0
0 0 0 0 0
3 7 0 9 0
1 2 5 1
выходные данные
12
Информационные модели представляют объекты и процессы в образной или знаковой форме.
Образные модели (рисунки, фотографии и др. ) представляют собой зрительные образы объектов, зафиксированные на каком-либо носителе информации (бумаге, фото- и кинопленке и др.) . Широко используются образные информационные модели в образовании (вспомните учебные плакаты по различным предметам) и науке, где требуется классификация объектов по их внешним признакам (в ботанике, биологии, палеонтологии и др.) .
Знаковые информационные модели строятся с использованием различных языков (знаковых систем) . Знаковая информационная модель может быть представлена в форме текста (например, программы на языке программирования) , формулы (например, второго закона Ньютона F=m·a), таблицы (например, периодической таблицы элементов Д. И. Менделеева) и так далее.
Иногда при построении знаковых информационных моделей используются одновременно несколько различных языков. Примерами таких моделей могут служить географические карты, графики, диаграммы и пр. Во всех этих моделях используются одновременно как язык графических элементов, так и на протяжении своей истории человечество использовало различные и инструменты для создания информационных моделей. Эти постоянно совершенствовались. Так, первые информационные модели создавались в форме наскальных рисунков, в настоящее же время информационные модели обычно строятся и исследуются с использованием современных компьютерных технологий.
#include <iostream>
typedef long long ll;
using namespace std;
bool ll_is_valid(ll t, ll N, ll x, ll y)
{
return t / x + (t - x) / y >= N;
}
ll f(ll N, ll x, ll y)
{
ll R = 1;
while (!ll_is_valid(R,N,x,y)) R *= 2;
ll L = R / 2;
while(R - L > 1)
{
ll M = (L + R) / 2;
if (!ll_is_valid(M,N,x,y)) {L = M;}
else {R = M;}
}
return R;
}
int main()
{
ll N,x,y;
cin >> N >> x >> y;
if(x > y) swap( x, y );
cout << f(N, x, y) << std::endl;
}