Cod sursa(job #1463138)

Utilizator NicolaalexandraNicola Alexandra Mihaela Nicolaalexandra Data 20 iulie 2015 11:34:31
Problema Matrix Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <fstream>

using namespace std;

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

char v[130],a[1001][1001],x,c,s[1001][1001],ok[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[j][j-m] + s[i-m][j-m] != v[c]) {
                    ok[i][j] = 1;
                }

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

    return 0;
}