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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2013, 15:31   #1
MrEcho
Новичок
Джуниор
 
Регистрация: 08.06.2013
Сообщений: 1
По умолчанию Чемпионат по ралли.

Помогите решить задачу вот отсюда. Дурацкая задача, я понял, что от меня хотят, но в связи со своими скудными познаниями в С++ решение реализовать не могу. Буду благодарен, если кто-нибудь выложит код к ней, или хотя бы подскажет алгоритм решения.
MrEcho вне форума Ответить с цитированием
Старый 03.04.2014, 00:03   #2
kostan3
- Дорогой, а ты ку
Форумчанин
 
Регистрация: 06.10.2012
Сообщений: 181
По умолчанию

Код:
#include <iostream>
using namespace std;
int n,m,s,map[101][101]={0},f[101]={0},g[101]={0};
bool used[101]={false};
inline void success()
{
    cout<<"YES\n";
    exit(0);
}
inline void dfs(int x,int fa)
{
    if (used[x])  success();
    used[x]=true;
    for (int i=1;i<=n;++i)
        if (map[x][i] && (i != fa))
        {
            dfs(i,x);
            if (f[i]+map[x][i] > f[x])
            {
                g[x]=f[x];
                f[x]=f[i]+map[x][i];
            }
            else if (f[i]+map[x][i] > g[x])
                g[x]=f[i]+map[x][i];
        }
}
int main()
{
    int a,b,c;
    cin>>n>>m>>s;
    for (int i=1;i<=m;++i)
    {
        cin>>a>>b>>c;
        if ((a == b) || map[a][b])  success();
        map[a][b]=map[b][a]=c;
    }
    for (int i=1;i<=n;++i)
        if (!used[i])
            dfs(i,0);
    for (int i=1;i<=n;++i)
        if (f[i]+g[i] >= s)
            success();
    cout<<"NO\n";
}
kostan3 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Первый пошёл... Чемпионат Европы. Alar Свободное общение 55 07.07.2012 01:40
Чемпионат мира по футболу 2018 в России _-Re@l-_ Свободное общение 40 07.07.2011 00:32
Запуск РАЛЛИ 1997года по Виндовс Соколов Дмитрий Софт 8 31.12.2009 14:38
Ралли Соколов Дмитрий Gamedev - cоздание игр: Unity, OpenGL, DirectX 2 25.06.2009 13:49
Чемпионат мира по программированию: триумф российских команд Лукманов Александр Свободное общение 29 27.04.2009 17:35