Cho mình hỏi cách truyền mảng vào chương trình con của mình sau đây có gì sai ?
Nó cứ báo lỗi chỗ void
#include <bits/stdc++.h>
using namespace std;
typedef pair<int,int>in;
typedef pair<int,int>icq;
vector <in> a[1005];
vector <icq> b[1005];
int n,m,k,q,p,w1,w2,oo=1000000,i;
int fre[1005],d[1005],trace[10005],d1[10005];
void Dijkstra(int s,int f,int d[],int x[][]){
int i, u,v, du,uv, Min;
for (i=1; i<=n; i++) d[i] = oo;
d[s] = 0;
for(i=1;i<=n;i++) fre[i]=0;
do{
u = 0; Min = oo;
for(i=1;i<=n;i++)
if(fre[i]==0&&d[i]<Min)
{
Min = d[i];
u = i;
}
if(u==0 || u==f) break;
fre[u]=1;
for(int i=0; i < x[u].size();i++)
{
v = x[u][i].second;
uv = x[u][i].first;
if(fre[v]==0&&d[v]> d[u]+ uv)
{
d[v] = d[u]+uv;
trace[v]=u;
}
}
} while(true);
}
int main()
{
cin>>n>>m>>k;
for(i=1;i<=n;i++)
{
cin>>p>>q>>w1>>w2;
a[p].push_back(in(w1,q));
a[q].push_back(icq(w1,p));
b[p].push_back(in(w1,q));
b[q].push_back(icq(w2,p));
}
memset(fre,0,sizeof(fre));
Dijkstra(1,k,d1,a);
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?