Cod sursa(job #648139)

Utilizator tzoky07Alexandru Gaman tzoky07 Data 13 decembrie 2011 04:00:20
Problema Minesweeper Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.41 kb
#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <ctime>
#include <iostream>
using namespace std;

int check(int linii[],int size)
{register int i;
	for ( i=0;i<size;i+=1)
		if (linii[i] %3 != 0)
			return 0;
	return 1;
}

int main()
{
	//clock_t start,end; 
	srand(time(NULL));
	//start = clock();
	int n,m,r,pressTimes=0,size;
	register int i;
	float medie = 0;
	
	FILE* input = fopen("minesweeper.in","r");
	fscanf(input,"%d %d",&n,&m);
	fclose(input);
	
	size = n*m;
	int v[size];
	//cout << "Vector Alocat !" << endl;
	//cout << "n= " << n << "  m= " << m << "size= " << size << endl;
	
	for (i=0;i<501;i+=1)
	{	//cout << "------------------------------------------------" << endl;
		//cout << "Testul " << i << endl;
		pressTimes = 0;
		int nr = size;
		memset(v,1,sizeof(v));
		while (nr != 0)
		{
			int prec = rand() % size;
			r = rand() % size;
			while (prec == r) {r= rand() % size;}
			//cout << r << endl;
			if (v[r] %3 == 0) {nr++;}
			v[r] += 1;
			if (v[r] % 3 == 0) {nr--;}
			pressTimes += 1;
			//cin >> r;
		}
		medie += pressTimes;
	}
	
	FILE* exitFile = fopen("minesweeper.out","w");
	fprintf(exitFile,"%.6f",medie/500);
	fclose(exitFile);
	
	//end = clock();
	//printf("Timp executie : %.6f\n", (float) (end-start)/CLOCKS_PER_SEC);
	//cout << "In " << pressTimes << " apasari " << endl;
	//printf("Medie : %.6lf\n", medie/200);
	return 0;
}