Блог пользователя 4eloVeeek_C_umeHem

Автор 4eloVeeek_C_umeHem, история, 7 недель назад, По-русски

include

include

include

include

include

include

include

include

using namespace std;

define vec vector

define str string

define int long long

define pr_qu priority_queue

define que queue

define deq deque

define inf 1e18

define pii pair<long long, long long>

signed main() { int n, m, k; cin >> n >> m >> k;

vec<vec<pii>> g(n);

for (int i = 0; i < m; ++i)
{
    int u, v, w;
    cin >> u >> v >> w;
    g[u - 1].push_back({v - 1, w});
}

if (k == 0)
{
    cout << 0 << '\n';
    return 0;
}

vec<int> dpp(n, 0);
vec<int> dpc(n, inf);

for (int i = 1; i <= k; ++i)
{
    dpc = vector<int>(n, inf);
    for (int j = 0; j < n; ++j)
    {
        if (dpp[j] == inf)
            continue;
        for (auto& [v, w] : g[j])
        {
            if (dpp[j] + w < dpc[v])
                dpc[v] = dpp[j] + w;
        }
    }
    swap(dpp, dpc);
}

int ans = inf;
for (auto& i : dpp)
    if (i < ans)
        ans = i;

if (ans == inf)
    cout << "IMPOSSIBLe\n";
else
    cout << ans << '\n';

}

  • Проголосовать: нравится
  • -6
  • Проголосовать: не нравится