Witam
Mam do napisanie program wykorzystujący algorytm Bellmana-Forda, niestety po umieszczeniu go na SPOJ-u twierdzi że jest "błędna odpowiedz". Po mojemu powinno być dobrze. Oto kod:

 
#include <stdio.h>

typedef struct {
	int u, v, w;
} Edge;

int n; 
int e; 
Edge edges[1024]; 
int d[99]; 

#define INFINITY 10000

void printDist() {
	int i;

	for (i = 0; i < n; ++i)
	
		printf("%d ", d[i]);

	printf("\n\n");
}

void bellman_ford(int s) {
	int i,j;

	for (i = 0; i < n; ++i)
		d[i] = INFINITY;

	d[s] = 0;

	for (i = 1; i < n; ++i) {
		for (j = 0; j < e; ++j) {
			if (d[edges[j].u] + edges[j].w < d[edges[j].v])
				d[edges[j].v] = d[edges[j].u] + edges[j].w;
				}
				printDist();
			}
		
}

int main(int argc, char *argv[]) {
	int i, j;
	int w, t, k;

	scanf ("%d",&t);
	for (k = 0; k < t; ++k) {
	scanf("%d", &n);
	
	e = 0;

	for (i = 0; i < n; ++i)
		for (j = 0; j < n; ++j) {
			scanf("%d", &w);
			if (w != 0) {
				edges[e].u = i;
				edges[e].v = j;
				edges[e].w = w;
				++e;
			}
		}
			
			
	bellman_ford(0);
}
	return 0;
}

Wie może ktoś gdzie może leżeć problem?