Cod sursa(job #648125)

Utilizator tzoky07Alexandru Gaman tzoky07 Data 13 decembrie 2011 03:00:41
Problema Minesweeper Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.29 kb

#include <cstdlib>
#include <cstdio>
#include <time.h>
#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,j;
	float medie = 0;
	
	FILE* input = fopen("minesweeper.in","r");
	fscanf(input,"%d %d",&n,&m);
	fclose(input);
	
	size = n*m;
	int* linii = new int[size];
	cout << "Vector Alocat !" << endl;
	cout << "n= " << n << "  m= " << m << "size= " << size << endl;
	
	for ( i=0;i<16;i+=1)
	{	cout << "------------------------------------------------" << endl;
		pressTimes = 0;
		for ( j=0;j<size;j+=1)
			{*(linii+j) = 1;}
		while (check(linii,size) == 0 )
		{
			r = rand() % (size);
			cout << r << endl;
			*(linii+r) += 1;
			pressTimes += 1;
			//cin >> r;
		}
		medie += pressTimes;
	}
	
	delete[] linii;
	
	FILE* exitFile = fopen("minesweeper.out","w");
	fprintf(exitFile,"%.6f",medie/15);
	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/15);
	return 0;
}