Esempio n. 1
0
int main(){
	int cas,i;
	scanf("%d",&cas);
	while(cas--){
		scanf("%d",&n);
		for(i=0;i<n;i++){
			scanf("%d",&map[i]);
		}
		map[n]=n+1;
		ida();
	}

	return 0;
}
Esempio n. 2
0
int main(int argc, char **argv)
{

	FILE *pfile;
	pfile = fopen(argv[1], "r");

	struct node N, Ret;
	int i;
	for (i = 0; i < 16; i++) {
		fscanf(pfile, "%d", &(N.s[i]));
	}

	int *b, *b_;
	unsigned long int *gen, *ex;
	b = malloc(sizeof(int));
	b_ = malloc(sizeof(int));
	gen = malloc(sizeof(unsigned long int));
	ex = malloc(sizeof(unsigned long int));
	*b = h(N.s);
	*gen = 0;
	*ex = 0;

	Ret.n = 1;
	N.g = 0;
	N.p = 0;

	printf("Initial State:");

	for (i = 0; i < 16; i++) {
		if (!(i % 4)) printf("\n");
		printf("%3.2d", N.s[i]);
	}

	printf("\nInitial Estimate = %d\n", *b);
	printf("Threshold =");

	clock_t tic, toc;
	double ttime;

	tic = clock();

	while(Ret.n) {
		*b_ = INT_MAX;
		Ret = ida(&N, b, b_, gen, ex);
		if (Ret.n) {
			*b = *b_;
			printf(" %d", *b);
		}
	}

	toc = clock();
	ttime = (double)(toc - tic)/CLOCKS_PER_SEC;

	printf("\nSolution = %d\n", *b);
	printf("Generated = %lu\n", *gen);
	printf("Expanded = %lu\n", *ex);
	printf("Time = %.2f\n", ttime);
	printf("Expanded/Second = %.0f\n", *ex/ttime);

	return 0;
}