Cod sursa(job #2363267)

Utilizator YetoAdrian Tonica Yeto Data 3 martie 2019 13:19:19
Problema Matrix Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.23 kb
#include <fstream>
using namespace std;
int n, m, i, j, c, cnt, ok, k, nr;
int a[1001][1001], sol[1001][1001];
char car;
int v[1001][1001], fr[30];

int main () {
    ifstream fin ("matrix.in");
    ofstream fout ("matrix.out");
    fin>>n>>m;
    for (i=m;i<=n;i++) {
        for (j=m;j<=n;j++)
            sol[i][j]=1;
    }
    for (i=1;i<=n;i++) {
        for (j=1;j<=n;j++) {
            fin>>car;
            a[i][j]=car-'a';
        }
    }

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


    for (k=0;k<=25;k++) {
        for (i=1;i<=n;i++) {
            for (j=1;j<=n;j++) {
                if (a[i][j]==k)
                    v[i][j]=v[i-1][j]+v[i][j-1]-v[i-1][j-1]+1;
                else
                    v[i][j]=v[i-1][j]+v[i][j-1]-v[i-1][j-1];
            }
        }
        for (i=m;i<=n;i++) {
            for (j=m;j<=m;j++) {
                nr=v[i][j]-v[i-m][j]-v[i][j-m]+v[i-m][j-m];
                if (nr!=fr[k])
                    sol[i][j]=0;
            }
        }
    }

    for (i=m;i<=n;i++) {
        for (j=m;j<=n;j++) {
            cnt+=sol[i][j];
        }
    }

    fout<<cnt;
    return 0;
}