Cod sursa(job #1712198)

Utilizator enouGhAbu Ras Mohamed Ata Radu enouGh Data 2 iunie 2016 11:20:10
Problema Problema Damelor Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 1 kb
#include "Library.h"
#include<stdio.h>
#include<stdlib.h>
int v1[100000],v2[100000],v3[100000];
int n, el,i,nr, vizitat[100],matrice[100][100],j,q,ok,v[100000];
#define min(a,b) (((a)<(b)) ? (a) : (b))
void matrixchainmultiplication()
{
	for (i = 3;i <= n;i++)
	{
		for (j = 1;j + i - 1 <= n;j++)
		{
			el = j + i - 1;
			matrice[j][el] = 100000000;
			for (q = j + 1;q <= el - 1;q++)
			{
				matrice[j][el] = min(matrice[j][el], matrice[j][q] + matrice[q][el] + v[j]*v[q]*v[el]);
			}
		}
	}
	printf("%d \n", matrice[1][n]);
}

void queens(int k)
{
	if (k == n + 1)
	{
		if (!nr)
		{
			for (i = 1;i <= n;i++)
				printf("%d ",v[i]);
		}
		nr++;
		return;
	}

	for (i = 1;i <= n;i++)
		if (!v1[i] && !v2[k + i - n] && !v3[k - i + n])
        {
			v1[i] = v2[k + i - n] = v3[k - i + n] = 1;
			v[k] = i;
			queens(k + 1);
			v1[i] = v2[k + i - n] = v3[k - i + n] = 0;
		}
}

int main()
{
	printf("n=");
	scanf("%d", &n);
	queens(1);
	printf("\n%d", nr);

	return 0;
}