Cod sursa(job #1868173)

Utilizator iulianrotaruRotaru Gheorghe-Iulian iulianrotaru Data 4 februarie 2017 17:26:05
Problema Matrix Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<fstream>
using namespace std;
ifstream f("matrix.in");
ofstream g("matrix.out");
int n,m,i,j,k,sol,s[1<<10][1<<10],v[27];
bool viz[1<<10][1<<10];
char c,M[1<<10][1<<10];
int main()
{
    f>>n>>m;
    for(i=1;i<=n;++i) f>>(M[i]+1);
    while(f>>c) v[c-'a']++;
    sol=(n-m+1)*(n-m+1);
    for(k=0;k<26;++k)
        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]+(M[i][j]-'a'==k);
                if(i>=m&&j>=m)
                    if(s[i][j]-s[i-m][j]-s[i][j-m]+s[i-m][j-m]!=v[k]&&!viz[i][j])
                    {
                        viz[i][j]=1;
                        --sol;
                    }
            }
    g<<sol;
    return 0;
}