Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.02.2016, 07:29   #11
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Хоть ссылку дай
Poma][a вне форума Ответить с цитированием
Старый 09.02.2016, 18:07   #12
dimon_snake
Форумчанин
 
Регистрация: 05.11.2015
Сообщений: 167
По умолчанию

http://olimpmoippo.pp.ua
D8
Скажите, если нужно перевести
dimon_snake вне форума Ответить с цитированием
Старый 09.02.2016, 23:35   #13
dimon_snake
Форумчанин
 
Регистрация: 05.11.2015
Сообщений: 167
По умолчанию

Исправил на 90
Код:
const
max = 2000;
type
road = record
g1,g2:integer;
end;
vektor = array[1..100] of integer;
vek = array[1..100,1..100] of integer;
var
a:array[1..100] of integer;
roads : array [1..200]of road;
gr:array[1..100,1..100] of integer;
z,j,n,m,k,x,results:integer;
fi,fo:text;
c:word;
procedure Dik(gr:vek;st:integer);
var count,index,i,u,m,min:integer;
distance:vektor;
visited:array[1..100] of boolean;
begin
  m:=st;
  for i:=1 to n do
  begin
    distance[i]:=max;
    visited[i]:=false;
  end;
  distance[st]:=0;
  for count:=1 to n-1 do
  begin
    min:=max;
    for i:=1 to n do
    if(not visited[i]) and(distance[i]<=min) then
    begin
      min:=distance[i];
      index:=i;
    end;
    u:=index;
    visited[u]:=true;
    for i:=1 to n do
    if(not visited[i]) and (gr[u,i] <>0) and (distance[u]<>max) and(distance[u]+gr[u,i] < distance[i]) then
    distance[i]:=distance[u]+gr[u,i];
  end;
  if distance[i]<>max then
  results := distance[k]
  else results:=-1;
end;
begin
Assign(fi,'andrew.in');
Reset(fi);
Read(fi,n,m,k);
Readln(fi);
for z:=1 to n do Read(fi,a[z]);
Readln(fi);
for z:=1 to m do
begin
  Read(fi,roads[z].g1);
  Read(fi,roads[z].g2);
end;
for z:=1 to n do
  for j:=1 to n do
    gr[z,j]:=0;
for z:=1 to m do
begin
  gr[roads[z].g1,roads[z].g2]:=a[roads[z].g2];
  gr[roads[z].g2,roads[z].g1]:=a[roads[z].g1];
end;
Assign(fo,'andrew.out');
Rewrite(fo);
Dik(gr,1);
if results = -1 then Write(fo,-1)
else
Write(fo,results+a[1]);
Close(fo);
end.
Дорог ведь может быть больше чем городов.
100 дорог - было 80 б, 200 дорог - стало 90б.
200 дорог хватает. брал максимальное, n^2, 10000, ничего не изменилось.
dimon_snake вне форума Ответить с цитированием
Старый 10.02.2016, 23:36   #14
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Код:
#include <fstream>
#include <vector>
#include <algorithm>


#define inf 1e8

using namespace std;

struct edge
{
	int a, b, w;
	edge(int a = 0, int b = 0, int w = 0) :a(a), b(b), w(w) {}
};

ifstream cin("andrew.in");
ofstream cout("andrew.out");

int main()
{
	int n, m, k;
	cin >> n >> m >> k;
	k--;
	vector<int> w(n);
	for (int i = 0; i < n; i++)
		cin >> w[i];
	vector<edge> e;
	for (int i = 0; i < m; i++)
	{
		int a, b;
		cin >> a >> b; a--;b--;
		e.push_back(edge(a, b, w[a]));
		e.push_back(edge(b, a, w[b]));
	}

	vector<int> p(n, inf);
	p[0] = w[0];

	for (int i = 0; i < n; i++)
		for (int j = 0; j < e.size(); j++)
		{
			p[e[j].a] = min(p[e[j].a], p[e[j].b] + e[j].w);
		}

	cout << (p[k] == inf?-1:p[k]);
	return 0;
}
Вот Фордом. На 100
Poma][a вне форума Ответить с цитированием
Старый 11.02.2016, 00:05   #15
dimon_snake
Форумчанин
 
Регистрация: 05.11.2015
Сообщений: 167
По умолчанию

Спасибо большое!
dimon_snake вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ Динамическое программирование. Где недочет? UaKot Помощь студентам 14 22.06.2013 21:22
программа с++(исправить небольшой недочет) Timmon Общие вопросы C/C++ 3 20.10.2012 01:21
Недочет в задаче. Неполное решение Yankeee Помощь студентам 0 21.03.2012 15:28
Доработка Java программы. Не могу найти недочет в программе. ISV-777 Общие вопросы по Java, Java SE, Kotlin 2 04.11.2011 20:24
Нужно исправить интересный недочет hex666 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 14.03.2010 20:45