Cod sursa(job #1463139)

Utilizator NicolaalexandraNicola Alexandra Mihaela Nicolaalexandra Data 20 iulie 2015 11:45:19
Problema Matrix Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include <fstream>

using namespace std;

int n,m,i,j,ap,sol;

char a[1001][1001],x,c,ok[1001][1001];

int v[130], s[1001][1001];
ifstream fin ("matrix.in");
ofstream fout ("matrix.out");

int main (){

    fin>>n>>m;
    for (i=1;i<=n;i++)
        for (j=1;j<=n;j++)
            fin>>a[i][j];
    for (i=1;i<=m;i++)
        for (j=1;j<=m;j++){
            fin>>x;
            v[x]++;
        }

    for (c='a';c<='z';c++){
        for (i=1;i<=n;i++)
            for (j=1;j<=n;j++) {
                s[i][j] = s[i-1][j] + s[i][j-1] - s[i-1][j-1];
                if (a[i][j] == c)
                    s[i][j] ++;
            }

        for (i=m;i<=n;i++)
            for (j=m;j<=n;j++)
                if ( s[i][j] - s[i-m][j] - s[i][j-m] + s[i-m][j-m] != v[c]) {
                    ok[i][j] = 1;
                }

    }
    sol = 0;
    for (i=m;i<=n;i++)
        for (j=m;j<=n;j++)
            if (ok[i][j] == 0)
                sol++;
    fout<<sol;

    return 0;
}