Esempio n. 1
0
int main(int argc, char *argv[]) {
  assert(("Usage: ./3sat_seq [output path] [record_time file]") && argc == 3);
  openfiles(argv[1], argv[2]);
  
  int nClauses;
  int nVar;

  scanf("%d %d", &nClauses, &nVar);

  short **clauses = readClauses(nClauses, nVar);
  double st = omp_get_wtime();
  long solution = solveClauses(clauses, nClauses, nVar);
  double ed = omp_get_wtime();
  int i;
	
  if (solution >= 0) {
    printf("Solution found [%ld]: ", solution);
    fprintf(fout, "Solution found [%ld]: ", solution);
    for (i = 0; i < nVar; i++) {
      printf("%d ", (int) ((solution & (long) exp2(i)) / exp2(i)));
      fprintf(fout, "%d ", (int) ((solution & (long) exp2(i)) / exp2(i)));
    }
    printf("\n");
  } else {
    printf("Solution not found.\n");
    fprintf(fout, "Solution not found.\n");
  }
  printf("take %.4lfs\n", ed - st);
  fprintf(ftime, "%.4lf\n", ed - st);

  closefiles();
	
  return EXIT_SUCCESS;
}
int main(int argc, char *argv[]) {

	int nClauses;
	int nVar;

	scanf("%d %d", &nClauses, &nVar);

	short **clauses = readClauses(nClauses, nVar);

	long solution = solveClauses(clauses, nClauses, nVar);

	int i;
	if (solution >= 0) {
		printf("Solution found [%ld]: ", solution);
		for (i = 0; i < nVar; i++)
			printf("%d ", (int) ((solution & (long) exp2(i)) / exp2(i)));
		printf("\n");
	} else
		printf("Solution not found.\n");

	return EXIT_SUCCESS;
}