Cod sursa(job #1282650)

Utilizator patrutoiuandreipatrutoiu andrei patrutoiuandrei Data 4 decembrie 2014 16:46:42
Problema Matrix Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>

using namespace std;
ifstream fin("matrix.in");
ofstream fout("matrix.out");
int a[1001][1001],b[1001][1001],n,m,i,j,v[27],C[1001][1001],c,nr,OK;
char x;
int main(){
    fin>>n>>m;
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
        {
            fin>>x;
            a[i][j]=x-'a';
        }
    for(i=1;i<=m;i++)
        for(j=1;j<=m;j++)
        {
            fin>>x;
            v[x-'a']++;
        }

    for(c=0;c<=26;c++)
        for(i=1;i<=n;i++)
            for(j=1;j<=n;j++)
            {
                OK=0;
                if(a[i][j]==c)
                    OK=1;
                b[i][j]=b[i-1][j]+b[i][j-1]-b[i-1][j-1]+OK;
                if(i>=m&&j>=m&&b[i][j]-b[i-m][j]-b[i][j-m]+b[i-m][j-m]==v[c])
                    C[i][j]++;
            }
    for(i=m;i<=n;i++)
        for(j=m;j<=n;j++)
            if(C[i][j]==27)
                nr++;
    fout<<nr;
    return 0;
}