diff --git a/TP4.c b/TP4.c
index eb71d76806268fcf6b88863009e013f53a384798..58f6757bda82af1efb631a9f3543fe34c1a60ae2 100644
--- a/TP4.c
+++ b/TP4.c
@@ -25,7 +25,8 @@ unsigned long randlu()
 }
 
 // génère un double aléatoire entre 0 et 1
-double randdproba() {
+double randdproba()
+{
 	return (double)rand() / (double)RAND_MAX;
 }
 
@@ -49,54 +50,62 @@ void Fisher_Yates(unsigned long *tab, unsigned long size)
 	}
 }
 
-adjlist* generate_random_benchmark(unsigned long nb_nodes, double p, double q) {
-	if (q > p) {
+adjlist *generate_random_benchmark(unsigned long nb_nodes, double p, double q)
+{
+	if (q > p)
+	{
 		printf("paramètres de génération erronés (q > p)\nrelancez une génération\n");
 		exit(1);
 	}
 
 	// création du graphe à 400 noeuds et 4 communautés de 100
-		// (proba p d'avoir un lien entre deux noeuds d'une même communauté)
-		// (proba q d'avoir un lien entre deux noeuds de deux communautés)
+	// (proba p d'avoir un lien entre deux noeuds d'une même communauté)
+	// (proba q d'avoir un lien entre deux noeuds de deux communautés)
 	unsigned long e1 = nb_nodes;
-	adjlist *ret = (adjlist*) malloc(sizeof(adjlist));
+	adjlist *ret = (adjlist *)malloc(sizeof(adjlist));
 	ret->n = nb_nodes;
 	ret->e = 0;
-	ret->edges=malloc(e1*sizeof(adjlist));
+	ret->edges = malloc(e1 * sizeof(adjlist));
 	int add_edge = 0;
 
 	// création des arêtes
-	for (unsigned long n1 = 0; n1 < nb_nodes; n1 += 1) {
-		for (unsigned long n2 = n1 + 1; n2 < nb_nodes; n2 += 1) {
+	for (unsigned long n1 = 0; n1 < nb_nodes; n1 += 1)
+	{
+		for (unsigned long n2 = n1 + 1; n2 < nb_nodes; n2 += 1)
+		{
 			add_edge = 0;
-			if (n1%4 == n2%4) { // n1 et n2 dans la même communauté
-				if (p >= randdproba()) {
+			if (n1 % 4 == n2 % 4)
+			{ // n1 et n2 dans la même communauté
+				if (p >= randdproba())
+				{
 					add_edge = 1;
 				}
 			}
-			else { // n1 et n2 dans deux communautés différentes
-				if (q >= randdproba()) {
+			else
+			{ // n1 et n2 dans deux communautés différentes
+				if (q >= randdproba())
+				{
 					add_edge = 1;
 				}
 			}
-			if (add_edge) {
+			if (add_edge)
+			{
 				ret->edges[ret->e].s = n1;
 				ret->edges[ret->e].t = n2;
-				if (++(ret->e)==e1) {
+				if (++(ret->e) == e1)
+				{
 					e1 += nb_nodes;
-					ret->edges=realloc(ret->edges,e1*sizeof(edge));
+					ret->edges = realloc(ret->edges, e1 * sizeof(edge));
 				}
 			}
 		}
 	}
 
-
 	// création de la matrice d'adjacence associée
 	mkadjlist(ret);
 	return ret;
 }
 
-
 int ajuste_label(adjlist *g, unsigned long *label, unsigned long *label_count, unsigned long node)
 {
 
@@ -240,10 +249,12 @@ void output_graphe(adjlist *g, unsigned long *label, char *filename)
 	for (unsigned long k = 0; k < tmp_nb_node; k++)
 	{
 		fprintf(ptr, "%li [", k);
-		if (label == NULL) {
+		if (label == NULL)
+		{
 			fprintf(ptr, "color=black");
 		}
-		else {
+		else
+		{
 			switch (label[k])
 			{
 			case 0:
@@ -285,7 +296,6 @@ void output_graphe(adjlist *g, unsigned long *label, char *filename)
 				break;
 			}
 		}
-		
 
 		fprintf(ptr, "]\n");
 	}
@@ -307,27 +317,28 @@ void output_graphe(adjlist *g, unsigned long *label, char *filename)
 
 void output_graphe_clusters(char *filename, unsigned long size, double p, double q)
 {
-	if (size%4 != 0) {
+	if (size % 4 != 0)
+	{
 		printf("not a multiple of 4\n");
 		return;
 	}
 
-	unsigned long cluster_size = size/4;
-
+	unsigned long cluster_size = size / 4;
 
 	FILE *ptr;
 
 	ptr = fopen(filename, "w");
 
 	fprintf(ptr, "graph D {\n");
-	fprintf(ptr, "newrank=true;\n");
-
 
 	// premier cluster
 	fprintf(ptr, "subgraph cluster_0 {\nnode [color = red];\n");
-	for (unsigned long i = 0; i < cluster_size; i += 1) {
-		for (unsigned long j = i+1; j < cluster_size; j += 1) {
-			if (p >= randdproba()) {
+	for (unsigned long i = 0; i < cluster_size; i += 1)
+	{
+		for (unsigned long j = i + 1; j < cluster_size; j += 1)
+		{
+			if (p >= randdproba())
+			{
 				fprintf(ptr, "%lu -- %lu;\n", i, j);
 			}
 		}
@@ -336,10 +347,12 @@ void output_graphe_clusters(char *filename, unsigned long size, double p, double
 
 	// second cluster
 	fprintf(ptr, "subgraph cluster_1 {\nnode [color = blue];\n");
-	fprintf(ptr, "rank=same\n");
-	for (unsigned long i = cluster_size; i < 2*cluster_size; i += 1) {
-		for (unsigned long j = i+1; j < 2*cluster_size; j += 1) {
-			if (p >= randdproba()) {
+	for (unsigned long i = cluster_size; i < 2 * cluster_size; i += 1)
+	{
+		for (unsigned long j = i + 1; j < 2 * cluster_size; j += 1)
+		{
+			if (p >= randdproba())
+			{
 				fprintf(ptr, "%lu -- %lu;\n", i, j);
 			}
 		}
@@ -348,9 +361,12 @@ void output_graphe_clusters(char *filename, unsigned long size, double p, double
 
 	// troisieme cluster
 	fprintf(ptr, "subgraph cluster_2 {\nnode [color = green];\n");
-	for (unsigned long i = 2*cluster_size; i < 3*cluster_size; i += 1) {
-		for (unsigned long j = i+1; j < 3*cluster_size; j += 1) {
-			if (p >= randdproba()) {
+	for (unsigned long i = 2 * cluster_size; i < 3 * cluster_size; i += 1)
+	{
+		for (unsigned long j = i + 1; j < 3 * cluster_size; j += 1)
+		{
+			if (p >= randdproba())
+			{
 				fprintf(ptr, "%lu -- %lu;\n", i, j);
 			}
 		}
@@ -359,22 +375,57 @@ void output_graphe_clusters(char *filename, unsigned long size, double p, double
 
 	// dernier cluster
 	fprintf(ptr, "subgraph cluster_3 {\nnode [color = orange];\n");
-	for (unsigned long i = 3*cluster_size; i < 4*cluster_size; i += 1) {
-		for (unsigned long j = i+1; j < 4*cluster_size; j += 1) {
-			if (p >= randdproba()) {
+	for (unsigned long i = 3 * cluster_size; i < 4 * cluster_size; i += 1)
+	{
+		for (unsigned long j = i + 1; j < 4 * cluster_size; j += 1)
+		{
+			if (p >= randdproba())
+			{
 				fprintf(ptr, "%lu -- %lu;\n", i, j);
 			}
 		}
 	}
 	fprintf(ptr, "}\n");
 
-	
+	fprintf(ptr, "%lu -- %lu [color = white];\n", cluster_size - 1, 2 * cluster_size);
+	fprintf(ptr, "%lu -- %lu [color = white];\n", 2 * cluster_size - 1, 3 * cluster_size);
+
+	for (unsigned long i = 0; i < cluster_size; i += 1)
+	{
+		for (unsigned long j = cluster_size; j < 4 * cluster_size; j += 1)
+		{
+			if (q >= randdproba())
+			{
+				fprintf(ptr, "%lu -- %lu;\n", i, j);
+			}
+		}
+	}
+	for (unsigned long i = cluster_size; i < 2 * cluster_size; i += 1)
+	{
+		for (unsigned long j = 2 * cluster_size; j < 4 * cluster_size; j += 1)
+		{
+			if (q >= randdproba())
+			{
+				fprintf(ptr, "%lu -- %lu;\n", i, j);
+			}
+		}
+	}
+	for (unsigned long i = 2 * cluster_size; i < 3 * cluster_size; i += 1)
+	{
+		for (unsigned long j = 3 * cluster_size; j < 4 * cluster_size; j += 1)
+		{
+			if (q >= randdproba())
+			{
+				fprintf(ptr, "%lu -- %lu;\n", i, j);
+			}
+		}
+	}
+
 	fprintf(ptr, "}");
 	fclose(ptr);
 	return;
 }
 
-
 // -----------------------------------------------------------------------------------------------------------------------------------------
 
 int main(int argc, char **argv)
@@ -382,38 +433,23 @@ int main(int argc, char **argv)
 	if (argc < 2)
 	{
 		printf("un argument est attendu\n");
-			srand(time(NULL));
-			// TEST ZONE
-			printf("vous entrez dans le zone de test \\o/ \n");
-			adjlist *test = generate_random_benchmark(100, 0.5, 0.01);
-			output_adjlist(test, "./inst_test_100_5_01.txt");
-			free(test);
-
-			test = generate_random_benchmark(400, 0.5, 0.01);
-			output_adjlist(test, "./inst_test_400_5_01.txt");
-			free(test);
-
-			test = generate_random_benchmark(4000, 0.5, 0.01);
-			output_adjlist(test, "./inst_test_4000_5_01.txt");
-			free(test);
-
-			test = generate_random_benchmark(4000, 0.8, 0.2);
-			output_adjlist(test, "./inst_test_4000_8_2.txt");
-			free(test);
-
-			test = generate_random_benchmark(4000, 0.7, 0.4);
-			output_adjlist(test, "./inst_test_4000_7_4.txt");
-			free(test);
-			printf("random graphe généré\n");
-			// unsigned long *samuh = malloc(400 * sizeof(unsigned long));
-			// for (int i = 0; i < 400; i += 1) {
-			// 	samuh[i] = i%4;
-			// }
-			// output_graphe(test, samuh, "./bench_5_1.dot");
-
-
-			output_graphe_clusters("test.dot", 100, 0.6, 0);
+		srand(time(NULL));
+		// TEST ZONE
+		printf("vous entrez dans le zone de test \\o/ \n");
+
+		printf("random graphe généré\n");
+
+		adjlist *test = generate_random_benchmark(40, 0.8, 0.05);
+		output_adjlist(test, "./small_test.txt");
+		// free(test);
+
+		unsigned long *samuh = malloc(400 * sizeof(unsigned long));
+		for (int i = 0; i < 400; i += 1) {
+			samuh[i] = i%4;
+		}
+		output_graphe(test, samuh, "./test.dot");
 
+		// output_graphe_clusters("test.dot", 40, 0.6, 0.01);
 
 		return 1;
 	}
diff --git a/small_test.txt b/small_test.txt
index 2fc6308314ec75fd5019cc2266ba380f8a993df8..e3a0c2f5672926c075c1c120b0aaa26d314e7e60 100644
--- a/small_test.txt
+++ b/small_test.txt
@@ -1,25 +1,169 @@
-# Blablabla
-# Maison
-# Nodes: 334863 Edges: 925872
-# FromNodeId	ToNodeId
-0   1
-0   2
-0   3
-0   4
-1	2
-1	3
-2	3
-3   6
-4   5
-4   6
-4   7
-5   6
-5   7
-6   7
-8   9
-8   10
-8   11
-8   12
-8   13
-10  11
-12  13
\ No newline at end of file
+0	4
+0	8
+0	12
+0	16
+0	20
+0	24
+0	28
+0	32
+0	36
+1	4
+1	9
+1	13
+1	17
+1	21
+1	29
+1	33
+1	37
+2	6
+2	10
+2	14
+2	22
+2	26
+2	30
+2	34
+2	38
+3	7
+3	11
+3	15
+3	19
+3	23
+3	31
+3	39
+4	8
+4	12
+4	16
+4	20
+4	28
+4	29
+4	32
+5	13
+5	21
+5	25
+5	29
+5	33
+5	37
+6	10
+6	14
+6	18
+6	22
+6	26
+6	30
+6	34
+7	11
+7	15
+7	23
+7	27
+7	31
+7	35
+7	39
+8	12
+8	16
+8	20
+8	22
+8	24
+8	28
+8	32
+9	10
+9	21
+9	27
+9	29
+9	33
+10	14
+10	18
+10	22
+10	26
+10	30
+10	34
+10	38
+11	15
+11	19
+11	23
+11	27
+11	29
+11	31
+11	35
+11	39
+12	16
+12	17
+12	20
+12	24
+12	28
+12	32
+12	36
+13	16
+13	17
+13	21
+13	25
+13	29
+13	33
+13	35
+13	37
+14	18
+14	22
+14	26
+14	30
+14	34
+15	19
+15	22
+15	27
+15	31
+15	35
+15	39
+16	28
+16	32
+16	36
+17	25
+17	33
+17	37
+18	22
+18	26
+18	28
+18	30
+18	34
+19	20
+19	23
+19	31
+19	35
+19	39
+20	24
+20	28
+20	36
+21	25
+21	29
+21	33
+21	35
+21	37
+22	26
+22	30
+22	33
+22	34
+22	38
+23	31
+23	35
+23	37
+23	39
+24	26
+24	28
+24	32
+24	36
+25	29
+25	33
+25	37
+26	28
+26	30
+26	31
+26	34
+26	38
+27	32
+27	35
+28	32
+28	36
+29	33
+29	37
+30	34
+32	36
+33	37
+34	38
+35	39
+36	37