Cod sursa(job #3319980)

Utilizator Mihai_OctMihai Octavian Mihai_Oct Data 3 noiembrie 2025 23:07:42
Problema Matrix Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <bits/stdc++.h>


using namespace std;

ifstream fin("matrix.in");
ofstream fout("matrix.out");
int n, m, i, j, vi[26], rasp;
short fr[1002][1002][26];
char car;

int main() {
    fin.tie(nullptr);
    fout.tie(nullptr);

    fin >> n >> m;
    for(i = 1; i <= n; i++) {
        for(j = 1; j <= n; j++) {
            fin >> car;
            fr[i][j][car - 'a']++;

            for(int c = 0; c < 26; c++) {
                fr[i][j][c] += fr[i - 1][j][c] + fr[i][j - 1][c] - fr[i - 1][j - 1][c];
            }
        }
    }

    for(i = 1; i <= m; i++) {
        for(j = 1; j <= m; j++) {
            fin >> car;
            vi[car - 'a']++;
        }
    }

    for(i = m; i <= n; i++) {
        for(j = m; j <= n; j++) {
            int cor = 0;
            for(int c = 0; c < 26; c++) {
                int sum = fr[i][j][c] - fr[i - m][j][c] - fr[i][j - m][c] + fr[i - m][j - m][c];
                if(sum == vi[c]) cor++;
            }
            if(cor == 26) rasp++;
        }
    }
    fout << rasp;

    return 0;
}