Cod sursa(job #2363228)

Utilizator Anakin1001George Giorgiu Gica Anakin1001 Data 3 martie 2019 13:13:03
Problema Matrix Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <fstream>

using namespace std;
ifstream f("matrix.in");
ofstream g("matrix.out");
int n,m,i,j,c,s;
int a[1001][1001],fr[27],v[1001][1001];
char ch;
bool ok,sol[1001][1001];
int main(){
    f>>n>>m;
    for(i=1;i<=n;i++)
    for(j=1;j<=n;j++){
        f>>ch;
        a[i][j]=ch-'a'+1;
    }
    for(i=1;i<=m;i++)
    for(j=1;j<=m;j++){
        f>>ch;
        fr[ch-'a'+1]++;
    }
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
            sol[i][j]=1;
    for(c=1;c<='z'-'a'+1;c++){
        for(i=1;i<=n;i++)
        for(j=1;j<=n;j++){
            v[i][j]=v[i-1][j]+v[i][j-1]-v[i-1][j-1];
            if(a[i][j]==c)
                v[i][j]++;
            if(i>=m&&j>=m)
                if(v[i][j]-v[i-m][j]-v[i][j-m]+v[i-m][j-m]!=fr[c])
                    sol[i][j]=0;

        }
    }
    for(i=m;i<=n;i++)
        for(j=m;j<=n;j++)
            s+=sol[i][j];
    g<<s;
}