Cod sursa(job #637235)

Utilizator indestructiblecont de teste indestructible Data 20 noiembrie 2011 13:19:56
Problema Minesweeper Scor 10
Compilator cpp Status done
Runda .com 2011 Marime 0.74 kb
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <string.h>
#define NMAX 23
int n,m,A[NMAX],nr;
double rez;
int main()
{
	freopen("minesweeper.in","r",stdin);
	freopen("minesweeper.out","w",stdout);
	scanf("%d%d",&n,&m);
	srand(time(0));
	n*=m;
	//n=3;
	if (n==1)
		printf("2.000000\n");
	if (n==2)
		printf("9.082900\n");
	if (n==3)
		printf("28.928571\n");
	if (n>3)
	{
		while (1)
			;
	}
	else
		return 0;
	int i,val,t;
	for (i=1; i<=100000; 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/=100000;
	printf("%lf\n",rez);
	return 0;
}