Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2015-11-21 06:57:21.
Revizia anterioară Revizia următoare
Revizia anterioară Revizia următoare
Fişierul intrare/ieşire: | hack.in, hack.out | Sursă | FMI No Stress 6 |
Autor | Mihai Calancea | Adăugată de | |
Timp execuţie pe test | 0.5 sec | Limită de memorie | 20480 kbytes |
Scorul tău | N/A | Dificultate | N/A |
Vezi solutiile trimise | Statistici
Hack
#define PII pair<int, int>
#define VI vector<int>
const int dx[5] = {0, 0, 1, -1};
const int dy[5] = {1, -1, 0, 0};
int getDistance(vector<string> &A, PII start) {
int n = A.size(), m = A[0].size();
int COUNTER = 0;
queue<PII> Q;
vector<VI> d(n, vector<int> (m, n * m));
d[start.first][start.second] = 0;
Q.push(start);
while(!Q.empty()) {
PII node = Q.front();
Q.pop();
COUNTER++;
for(int dir = 0; dir < 4; ++dir) {
int newX = node.first + dx[dir];
int newY = node.second + dy[dir];
if(newX < 0 || newX >= n || newY < 0 || newY >= m)
continue;
int cost = 0;
if(A[node.first][node.second] != A[newX][newY])
cost = 1;
if(d[node.first][node.second] + cost < d[newX][newY]) {
d[newX][newY] = d[node.first][node.second] + cost;
Q.push({newX, newY});
}
}
}
return COUNTER;
}
Date de intrare
Fişierul de intrare hack.in nu va conţine nimic.
Date de ieşire
În fişierul de ieşire hack.out se vor afla 4 numere pe prima linie: N, M, startX, startY, reprezentând dimensiunile matricei şi coordonatele celulei de start. startX startY vor fi indexate de la 1.
Restricţii
- 1 ≤ N, M ≤ 50
Exemplu
hack.in | hack.out |
---|---|
5 5 3 3 00000 01110 01010 01110 00000 |
Explicaţie
Trebuie sa te autentifici pentru a trimite solutii. Click aici