diff --git a/TP4.c b/TP4.c
index cb9ebe38f9c9c32f89a9a4d180c386ed5e4f974b..b16be82afad2011aa81d496269349e12064c2304 100644
--- a/TP4.c
+++ b/TP4.c
@@ -142,7 +142,8 @@ void aff_tab(unsigned long *t, int size)
 
 // -----------------------------------------------------------------------------------------------------------------------------------------
 
-void simplifie_label(unsigned long *label, unsigned long size)
+// renvoie le nombre de label et les renommes
+unsigned long simplifie_label(unsigned long *label, unsigned long size)
 {
 	unsigned long c = 0;
 	unsigned long smallest = size;
@@ -168,6 +169,7 @@ void simplifie_label(unsigned long *label, unsigned long size)
 		}
 		c++;
 	}
+	return c - 1;
 }
 
 void output_graphe(adjlist *g, unsigned long *label, char *filename)
@@ -255,7 +257,7 @@ int main(int argc, char **argv)
 	}
 
 	adjlist *g;
-	time_t t1, t2, t3;
+	time_t t1, t2, t3, t4;
 
 	// PARSING
 	t1 = time(NULL);
@@ -263,8 +265,11 @@ int main(int argc, char **argv)
 	printf("Reading edgelist from file %s\n", argv[1]);
 	g = al_readedgelist(argv[1]);
 	t3 = time(NULL);
-	printf("- edge list time = %ldh%ldm%lds\n",(t3-t1)/3600,((t3-t1)%3600)/60,((t3-t1)%60));
-	// printf("- edge list time = %I64dh%I64dm%I64ds\n", (t3 - t1) / 3600, ((t3 - t1) % 3600) / 60, ((t3 - t1) % 60));
+#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
+	printf("- edge list time = %I64dh%I64dm%I64ds\n", (t3 - t1) / 3600, ((t3 - t1) % 3600) / 60, ((t3 - t1) % 60));
+#else
+	printf("- edge list time = %ldh%ldm%lds\n", (t3 - t1) / 3600, ((t3 - t1) % 3600) / 60, ((t3 - t1) % 60));
+#endif
 
 	printf("Number of nodes: %lu\n", g->n);
 	printf("Number of edges: %lu\n", g->e);
@@ -274,18 +279,31 @@ int main(int argc, char **argv)
 
 	t2 = time(NULL);
 
-	printf("- Overall time = %ldh%ldm%lds\n",(t2-t1)/3600,((t2-t1)%3600)/60,((t2-t1)%60));
-	// printf("- Overall time = %I64dh%I64dm%I64ds\n", (t2 - t1) / 3600, ((t2 - t1) % 3600) / 60, ((t2 - t1) % 60));
+#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
+	printf("- Overall time = %I64dh%I64dm%I64ds\n", (t2 - t1) / 3600, ((t2 - t1) % 3600) / 60, ((t2 - t1) % 60));
+#else
+	printf("- Overall time = %ldh%ldm%lds\n", (t2 - t1) / 3600, ((t2 - t1) % 3600) / 60, ((t2 - t1) % 60));
+#endif
 
 	srand(time(NULL));
 
 	unsigned long *res = label_propagation(g);
 
-	simplifie_label(res, g->n);
+	t4 = time(NULL);
+
+#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
+	printf("- label_propagation time = %I64dh%I64dm%I64ds\n", (t4 - t2) / 3600, ((t4 - t2) % 3600) / 60, ((t4 - t2) % 60));
+#else
+	printf("- label_propagation time = %ldh%ldm%lds\n", (t4 - t2) / 3600, ((t4 - t2) % 3600) / 60, ((t4 - t2) % 60));
+#endif
+
+	unsigned long nb = simplifie_label(res, g->n);
+	printf("%li label different\n", nb);
 	output_graphe(g, res, "toto.dot");
 
 	printf("run {dot -Tpng -o out.png toto.dot} pour avoir une visualisation de la solution\n");
 
+	free(res);
 	free_adjlist(g);
 	return 0;
 }