#include #include /*Exemple de loader que vous pouvez modifier à souhait de manière à *obtenir une structure de données qui vous correspond. *Le but est que vous n'y passiez pas trop de temps. */ typedef struct { int client_count; int facility_count; int* opening_cost; int** connection; } Data; void skipLine(FILE *fp) { while (fgetc(fp)!='\n'); } Data* load_instance(char* filename){ FILE *fp; fp=fopen(filename, "r"); skipLine(fp); Data* data=malloc(sizeof(data)); int nothing; fscanf(fp,"%d %d %d", &data->facility_count, &data->client_count, ¬hing); data->opening_cost=malloc((1+data->facility_count)*sizeof(int)); data->connection=malloc((1+data->facility_count)*sizeof(int*)); for (int fac=1;fac<=data->facility_count;fac++){ fscanf(fp,"%d %d",¬hing, &data->opening_cost[fac]); data->connection[fac]=malloc((1+data->client_count)*sizeof(int)); for(int client=1;client<=data->client_count; client++) { fscanf(fp,"%d", &data->connection[fac][client]); } } fclose(fp); return data; } void free_data(Data* data){ for (int fac=1; fac<=data->facility_count;fac++) free(data->connection[fac]); free(data->connection); free(data->opening_cost); free(data); return; } int main( int argc, char *argv[]) { Data* data = load_instance(argv[1]); printf("%d \n", data->connection[data->facility_count][data->client_count]); free_data(data); return 0; }