Tianjin University Online Judge
Contests Virtual Contests Problems Submit Runs Status Rank List Forum


who can tell me why Runtime Error SIGSEGV thx -- Problem 2819

zhaofeifiei104 6335. who can tell me why Runtime Error SIGSEGV thx
2008-08-30 00:17:58 #include<iostream>
using namespace std;
int main()
{
int s,d,i,j,k,n,m,x,y,ans,u;bool yes;
cin>>k;
while(k--)
{
  cin>>n>>m;
  cin>>s>>d;
  int mark[n+1],a[n+1][n+1];
  memset(mark,0,sizeof(mark));
  memset(a,0,sizeof(a));
  for(i=1;i<=m;i++)
  {cin>>x>>y>>a[x][y];a[y][x]=a[x][y];}
  mark[s]=1;
  while(1)
  {
   yes=false;
   int min=10000000;
   for(i=1;i<=n;i++)
   {
    if(mark[i]==0&&a[s][i]!=0&&a[s][i]<min)
     {min=a[s][i];u=i;yes=true;}
   }
   mark[u]=1;
   ans=min;
   if(!yes)break;
   if(mark[d]==1)break;
   for(j=1;j<=n;j++)
   {
    if(j!=s&&mark[j]==0&&a[u][j]!=0)
    {
     if(a[s][j]>a[s][u]+a[u][j])
     {
      a[s][j]=a[s][u]+a[u][j];
     }
   }
  }
  
  }
  if(mark[d]!=1)cout<<-1<<endl;
  else
  cout<<ans<<endl;
}
return 0;
}
  1

Search    Goto Page:  
User ID:
Password:
Title:

Tianjin University Online Judge v1.2.4