样例能过,但全wa
查看原帖
样例能过,但全wa
1028771
Retoayd楼主2023/10/21 09:01
#include <bits/stdc++.h>
using namespace std;
long long int n,m,check,bak[2010],t1[2010],t2[2010],t3[2010],dis[2010];
int main()
{
  cin>>n>>m;
  int inf=999999999;
  for(int i=1; i<=m; i++)
  {
    cin>>t1[i]>>t2[i]>>t3[i];
  }
  for(int i=1; i<=n; i++) dis[i]=inf;
  dis[1]=0;
  for(int k=1; k<=n-1; k++)
  {
    check=0;
    for(int i=1; i<=m; i++)
    {
      if(dis[t2[i]]>dis[t1[i]]+t3[i])
      {
        dis[t2[i]]=dis[t1[i]]+t3[i];
        check=1;
      }
    }
    if(check==0) break;
  }
  int flag=0;
  for(int i=1; i<=m; i++)
  {
    if(dis[t2[i]]>dis[t1[i]]+t3[i]) flag=1;
  }
  if(flag!=1)
  {
    for(int i=1; i<=n; i++)
    {
      if(dis[i]==inf) cout<<-1<<" ";
      else cout<<dis[i]<<" ";
    }
  }
  return 0;
}
2023/10/21 09:01
加载中...