Cześć mam problem z zadaniem przemytnicy. Napisałem już kod, który według mnie powinien działać, a na końcu i tak zawsze wypisuje 0. Siedzę nad tym zadaniem już 3 godziny, czy mógłby ktoś mi wytłumaczyć, gdzie popełniłem błąd?
#include <bits/stdc++.h>
using namespace std;
const int MAXN=1e4+7;
int dist[2*MAXN];
vector<pair<int,int>> G[2*MAXN];
void Dijkstra(int start)
{
priority_queue<pair<int,int>> Q;
Q.push({0, start});
while (Q.size())
{
auto [d, v]=Q.top();
Q.pop();
if (dist[v]<=-d)
continue;
dist[v]=-d;
for (auto [u,w] : G[v])
{
if (dist[u]>dist[v]+w)
Q.push({-(dist[v]+w),u});
}
}
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
int n;
cin>>n;
for (int i=1; i<=n; i++)
{
int number;
cin>>number;
G[i].push_back({i+n, number/2});
}
int m;
cin>>m;
for (int i=1; i<=m; i++)
{
int a, b, c;
cin>>a>>b>>c;
G[a].push_back({b, c});
}
Dijkstra(1);
cout<<dist[n+1];
return 0;
}