Cod sursa(job #3355937)

Utilizator RuxandraPro12_Metehau Ruxandra Maria RuxandraPro12_ Data 27 mai 2026 20:51:23
Problema Castel Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.24 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin ("castel.in");
ofstream fout ("castel.out");

const int NMAX = 150, l[4] = {0, 1, 0, -1}, c[4] = {-1, 0, 1, 0};

int n, m, k, v[NMAX + 5][NMAX + 5], lg;

pair <int, int> w[NMAX * NMAX + 5];

unordered_map <int, bool> f;

bool flag = true;

int main() {
    fin >> n >> m >> k;
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= m; j++)
            fin >> v[i][j];
    }
    int xp = k / m, yp = k % m;
    if (xp == 0)
        xp++;
    if (yp == 0)
        xp--, yp = m;
    w[++lg] = {xp, yp};
    f[k] = 1;
    while (flag == true) {
        flag = false;
        for (int i = 1; i <= lg; i++) {
            for (int j = 0; j < 4; j++) {
                int x = w[i].first + l[j], y = w[i].second + c[j];
                if (f[v[x][y]] && !f[(x - 1) * m + y]) {
                    f[(x - 1) * m + y] = 1;
                    w[++lg] = {x, y};
                    flag = true; // printesa a descoperit inca o camera
                }
            }
        }
    }
    int ans = 0;
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= m; j++)
            ans += f[(i - 1) * m + j];
    }
    fout << ans << "\n";
    return 0;
}