这是哪道题的题解?过来认领一下。
#include<bits/stdc++.h>
using namespace std;
int h[101],nxt[501],val[501],zd[501],cnt=0;
int n,m,s,dis[101];
bool inq[101];
int q[1001],f,e;
void addedge(int a,int b,int c){
cnt++;
val[cnt]=c,zd[cnt]=b,nxt[cnt]=0;
nxt[cnt]=h[a];
h[a]=cnt;
}
int main(){
s=1;
cin>>n>>m;
addedge(1,2,n);
addedge(2,3,m);
memset(dis,-1,sizeof(dis));
dis[s]=0,inq[s]=1;
q[1]=s,f=1,e=1;
while(f<=e){
int u=q[f++];
for(int p=h[u];p;p=nxt[p]){
int v=zd[p],c=val[p];
if(dis[v]==-1||dis[v]>dis[u]+c){
dis[v]=dis[u]+c;
if(inq[v]==0)q[++e]=v,inq[v]=1;
}
}
inq[u]=0;
}
cout<<dis[3];
}