Advertisement
kcku

00558 - Wormholes

Jul 31st, 2014
236
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.74 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int main()
  5. {
  6.     int cases;
  7.     scanf("%d", &cases);
  8.  
  9.     for(int n, m; cases-- && scanf("%d%d", &n, &m);)
  10.     {
  11.         int dist[n], u[m], v[m], w[m], ok=0;
  12.         memset(dist, 127, sizeof(dist));
  13.         dist[0]=0;
  14.  
  15.         for(int i=0; i<m; i++)
  16.             scanf("%d%d%d", u+i, v+i, w+i);
  17.  
  18.         for(int i=1, use=1; i<n && use; i++)
  19.             for(int j=use=0; j<m; j++)
  20.                 if(dist[v[j]]>dist[u[j]]+w[j] && dist[u[j]]!=0x7f7f7f7f)
  21.                     dist[v[j]]=dist[u[j]]+w[j], use=1;
  22.  
  23.         for(int i=0; i<m && !ok; i++)
  24.             if(dist[v[i]]>dist[u[i]]+w[i] && dist[u[i]]!=0x7f7f7f7f)
  25.                 ok=1;
  26.  
  27.         puts(ok?"possible":"not possible");
  28.     }
  29. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement