Cod sursa(job #2115724)

Utilizator MihaelaCismaruMihaela Cismaru MihaelaCismaru Data 27 ianuarie 2018 09:01:39
Problema Matrix Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.15 kb
#include<fstream>
using namespace std;
ifstream in ("matrix.in");
ofstream out ("matrix.out");
int sum[1001][1001],n,m,x,sol,hz[27];
char mat[1001][1001],y;
bool oke[1001][1001];
int main (void) {
    in >> m >> n;
    for (int i = 1; i <= m; i ++) {
        for (int j = 1; j <= m; j ++) {
            in >> mat[i][j];
            oke[i][j] = 1;
        }
    }
    for (int i = 1; i <= n; i ++) {
        for (int j = 1; j <= n; j ++) {
            in >> y;
            hz[y-'a'+1] ++;
        }
    }
    for (int k = 1; k <= 26; k ++) {
        for (int i = 1; i <= m; i ++) {
            for (int 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 (int i = 1; i <= m; i ++) {
        for (int j = 1; j <= m; j ++) {
            sol += oke[i][j];
        }
    }
    out << sol;
    return 0;
}