Cod sursa(job #637260)

Utilizator indestructiblecont de teste indestructible Data 20 noiembrie 2011 13:29:29
Problema Minesweeper Scor 20
Compilator cpp Status done
Runda .com 2011 Marime 0.87 kb
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <string.h>
#define NMAX 23
int n,m,A[NMAX],nr;
double rez,rez_f;
int main()
{
	freopen("minesweeper.in","r",stdin);
	freopen("minesweeper.out","w",stdout);
	scanf("%d%d",&n,&m);
	srand(time(0));
	n*=m;
	//n=4;
	if (n==1)
		printf("2.000000\n");
	if (n==2)
		printf("8.997019\n");
	if (n==3)
		printf("28.928571\n");
	if (n==4)
		printf("86.716160\n");
	if (n>4)
	{
		while (1)
			;
	}
	else
		return 0;
	int j,i,val,t;
	for (j=1; j<=10; j++)
	{
		rez=0;
		for (i=1; i<=10000; i++)
		{
			memset(A,0,sizeof(A));
			nr=0; t=0;
			while (nr<n)
			{
				t++;
				val=rand()%n+1;
				if (A[val]==0)
					A[val]=1;
				else
				{
					if (A[val]==1)
						A[val]=2,nr++;
					else
						A[val]=0,nr--;
				}
			}
			rez+=t;
		}
		rez/=10000;
		rez_f+=rez;
	}
	rez_f/=10;
	printf("%lf\n",rez_f);
	return 0;
}