Rezultati

Up. imeNalogaJezikRezultatČas oddaje
vmk-2019 Gozdovi C++ 0/100Napaka med izvajanjem / ob izhodu (RTE) 24. apr '19 @ 19:58

Test Točke Porabljen spomin Porabljen čas Status
#1 [več] 10/10 5,164 MiB 0,000 s OK
#2 [več] 0/10 5,094 MiB 0,016 s Napačen odgovor
Tvoj izhod:
​45495
<<<EOF>>>
Pravilen izhod:
​74812
<<<EOF>>>
#3 [več] 0/10 191,957 MiB 0,004 s Napaka med izvajanjem / ob izhodu
#4 [več] 10/10 7,875 MiB 0,028 s OK
#5 [več] 10/10 5,008 MiB 0,000 s OK
#6 [več] 10/10 8,754 MiB 0,021 s OK
#7 [več] 10/10 5,270 MiB 0,008 s OK
#8 [več] 10/10 7,309 MiB 0,021 s OK
#9 [več] 10/10 7,465 MiB 0,028 s OK
#10 [več] 10/10 5,262 MiB 0,026 s OK

Ocenjevani program (gozd.cpp):
#include <iostream>
#include <string>
#include <vector>

using namespace std;
void les(int i, int j, int n, int m);
//vector<vector<char>> slika(1000);
char slika[10000][10000];
//vector<vector<bool>> prov(1000);
bool prov[10000][10000];
int kolvo = 0;

int main() {
	int n, m;
	char str;
	cin >> n >> m;
	while (m != 0 && n != 0) {
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < m; j++) {
				cin >> str;
				slika[i][j] = str;
				prov[i][j] = false;
			}
		}
		//print(slika, n, m);

		for (int i = 0; i < n; i++) {
			for (int j = 0; j < m; j++) {
				if (prov[i][j] == 0) {
					kolvo++;
					les(i, j, n, m);
				}
				//print(prov, n, m);
			}
		}
		cout << kolvo << endl;
		kolvo = 0;
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < m; j++) {
				slika[i][j] = ' ';
				prov[i][j] = false;
			}
		}
		cin >> n >> m;
	}
	
	//system("pause");
	return 0;
}

void les(int i, int j, int n, int m) {
	prov[i][j] = true;
	if (j != 0 && i != 0 && prov[i - 1][j - 1] == 0 && slika[i - 1][j - 1] == slika[i][j]) {
		les(i - 1, j - 1, n, m);
	}
	if (i != 0 && prov[i - 1][j] == 0 && slika[i - 1][j] == slika[i][j]) {
		les(i - 1,j, n, m);
	}
	if (j != m && i != 0 && prov[i - 1][j + 1] == 0 && slika[i - 1][j + 1] == slika[i][j]) {
		les(i - 1, j + 1, n, m);
	}
	if (j != 0 && i != n && prov[i + 1][j - 1] == 0 && slika[i + 1][j - 1] == slika[i][j]) {
		les(i + 1, j - 1, n, m);
	}
	if (i != n && prov[i + 1][j] == 0 && slika[i + 1][j] == slika[i][j]) {
		les(i + 1, j, n, m);
	}
	if (j != m && i != n && prov[i + 1][j + 1] == 0 && slika[i + 1][j + 1] == slika[i][j]) {
		les(i + 1, j + 1, n, m);
	}
	if (j != 0 && prov[i][j - 1] == 0 && slika[i][j - 1] == slika[i][j]) {
		les(i, j - 1, n, m);
	}
	if (j != m && prov[i][j + 1] == 0 && slika[i][j + 1] == slika[i][j]) {
		les(i, j + 1, n, m);
	}
	
}