main ()
{
     while ( init () ) {
           if ( Bellman_Ford () < 0 ) printf ( "winnable\n" );
              else printf ( "hopeless\n" );
     }
}
Example #2
0
int main()
{
	scanf("%d", &ivc);

	for (int i = 0; i < ivc; i++)
	{
		int x, y;

		scanf("%d%d", &x, &y);

		AddVertex(x, y);
	}

	scanf("%d", &iec);

	for (int i = 0; i < iec; i++)
	{
		int u, v;

		scanf("%d%d", &u, &v);

		AddEdge(u, v);
		AddEdge(v, u);
	}

	scanf("%d%d", &s, &t);

	Bellman_Ford();

	printf("%.2lf", V[t].shortest);

	return 0;
}
//main
//--------------------------------------------------------------------------------------------//
int main(int argc, char **argv)
{
  copyFileToString(argv[1]);
  setInitData(argv[2]);
  numOfAttempts=atoi(argv[3]);

  Bellman_Ford();
  return 0;
}
Example #4
0
main(){
    int t,i,j;
    scanf("%d",&t);
    while(t--){
        scanf("%d %d",&n,&m);
        for(i=0;i<m;i++)
            scanf("%d %d %d",&e[i].a,&e[i].b,&e[i].len);
        if(Bellman_Ford())  puts("possible");
        else                puts("not possible");
    }
}
Example #5
0
pair<int , int> MincostMaxflow() {
    int maxflow = 0 , ans = 0 , x;
    while (Bellman_Ford()) {
        int flow = 1 << 30;
        for (x = t ; x != s ; x = e[p[x] ^ 1].x)
            flow = min(flow , e[p[x]].f);
        maxflow += flow , ans += d[t] * flow;
        for (x = t ; x != s ; x = e[p[x] ^ 1].x)
            e[p[x]].f -= flow , e[p[x] ^ 1].f += flow;
    }
    return make_pair(maxflow , ans);
}
Example #6
0
int main(int argc, char** argv)
{
  int counter = 0;
  int size = 0;
  Graph * arrayofnodes = Load(argv[1], &size, &counter);
  Create_Graph(arrayofnodes, counter);
  Bellman_Ford(arrayofnodes, counter);
  int i;
  for(i = 0; i < counter; i++)
    {
       Graph_Destroy(arrayofnodes[i].next);
    }
  free(arrayofnodes);
  return 0;
}
Example #7
0
File: 2240.c Project: UsuallyGO/POJ
int main()
{
	int n;
	int index;
	int edges;
	int first, second;
	int counter;
	char tmp[MAX_LENGTH];
	double tr;

	counter = 0;
	do
	{
		counter++;
		scanf("%d", &n);
		if(!n)
			break;

		for(index=1; index<=n; index++)
			scanf("%s", names[index]);

		scanf("%d",&index);
		for(edges=0; edges<index; edges++)
		{
			scanf("%s", tmp);
			eArr[edges].x = FindName(tmp, n);
			scanf("%lf", &eArr[edges].rate);
			scanf("%s", tmp);
			eArr[edges].y = FindName(tmp, n); 
		}

#if DEBUG
		ShowEdges(edges);
#endif 

		printf("Case %d: ", counter);
		if(Bellman_Ford(edges) < 0)
			printf("Yes\n");
		else
			printf("No\n");

	}while(1);

	return 0;
}
Example #8
0
File: WDGMF.c Project: mdilshad/DSA
void option1(struct graph *G,int opt2)
{
	char name,s,e;				
	switch(opt2)
	{
		case 1:
			//matrix_rep(G);
			break;
		case 2:	
			show_edge(G);
			break;
		case 3:	
			/*printf("\n\tTopological Sort Order is :\n\t");
			DFS(G);*/
			break;
		case 4:
			printf("\n\tEnter the Vertex :\t");
			getchar();
			scanf("%c",&s);
			Bellman_Ford(G,0,s);
			vertex(G);
			//print_path(G);
			break;
		case 5:	
			printf("\n\tEnter the Vertex :\t");
			getchar();
			scanf("%c",&s);
			Dijkstra(G,s);
			vertex(G);
			break;
		case 6:
			printf("\n\tEnter the Vertex :\t");
			getchar();
			scanf("%c",&s);
			//vertex_detail(G,s);
			break;	
		case 7:
			break;
		case 8:
			exit(0);
			break;
		default:printf("2wrong input \n");
		}
}
Example #9
0
File: 3259.cpp Project: cwchym/ACM
int main(int argc, char *argv[])
{
	int f;
	scanf("%d",&f);
	while(f--)
	{
		int N,M,W;

		scanf("%d %d %d",&N,&M,&W);

		int all_e=0;
		for(int i=0;i<M;i++)
		{
			int u,v,w;
			scanf("%d %d %d",&u,&v,&w);

			e[all_e].u=e[all_e+1].v=u;  
            e[all_e].v=e[all_e+1].u=v;  
            e[all_e++].length=w;  
            e[all_e++].length=w; 
		}

		for(int i=0;i<W;i++)
		{
			int u,v,w;
			scanf("%d %d %d",&u,&v,&w);

			e[all_e].u=u;  
            e[all_e].v=v;  
            e[all_e++].length=-w;
		}

		if(Bellman_Ford(N,all_e))
			printf("YES\n");
		else
			printf("NO\n");
	}
	
	return 0;
}
int main()
{
#if DEBUG
    freopen("E:\\zoj_1721.txt", "r", stdin);
    freopen("E:\\zoj_1721_ans.txt", "w", stdout);
#endif
    
    while (~scanf("%d", &N), N!=-1)
    {
        memset(px, 0, sizeof(px));
        memset(py, 0, sizeof(py));
        memset(p, 0, sizeof(p));
        memset(edge, 0, sizeof(edge));

        Read_Data();
        Bellman_Ford( 0 );
        
        printf("%.2lf\n", dist[pSizes-1]);
    }// End of while
    
    return 0;
}
Example #11
0
int main ()
{
    int i, j, a, b, k;
    char c[3];
    while ( scanf("%d", &n), n )
    {
        cnt = 0;
        scanf("%d", &m);
        Max = 0;
        for ( i = 0; i < m; i++ )
        {
            scanf(" %d %d %s %d", &a, &b, c, &k);

            if ( c[0] == 'g')
            Add( b + a + 1, a, -1 * ( k + 1) );

            else
            Add(a, a + b + 1, k - 1);
        }
        printf("%s\n", Bellman_Ford() ? "lamentable kingdom": "successful conspiracy" );
    }
}