Cod sursa(job #2359572)

Utilizator HedeaMihneAHedea Mihnea HedeaMihneA Data 28 februarie 2019 22:10:26
Problema Matrix Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.13 kb
#include<fstream>

using namespace std;

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

int sum[1001][1001],n,m,x,sol,hz[27],i,j,k;

char mat[1001][1001],y;

bool oke[1001][1001];
int main (void) {
    fin>>m>>n;
    for (i = 1; i <= m; i ++) {
        for (j = 1; j <= m; j ++) {
            fin >> mat[i][j];
            oke[i][j] = 1;
        }
    }
    for (i = 1; i <= n; i ++) {
        for (j = 1; j <= n; j ++) {
            fin >> y;
            hz[y-'a'+1] ++;
        }
    }
    for (k = 1; k <= 26; k ++) {
        for (i = 1; i <= m; i ++) {
            for (j = 1; j <= m; j ++) {
                sum[i][j] = sum[i-1][j] + sum[i][j-1] - sum[i-1][j-1];
                if (mat[i][j] == k+'a'-1) {
                    sum[i][j] ++;
                }
                x = sum[i][j] -sum[i-n][j] - sum[i][j-n] + sum[i-n][j-n];
                if (x != hz[k]) {
                    oke[i][j] = 0;
                }
            }
        }
    }
    for (i = 1; i <= m; i ++) {
        for (j = 1; j <= m; j ++) {
            sol += oke[i][j];
        }
    }
    fout << sol;
    return 0;
}