Cod sursa(job #1502404)

Utilizator RaduMirceaAndreiRadu Mircea Andrei RaduMirceaAndrei Data 14 octombrie 2015 17:02:42
Problema Matrix Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
# include <fstream>
using namespace std;
ifstream fin("matrix.in");
ofstream fout("matrix.out");
char v[1001][1001],x;
int ok[1001][1001],n,m,i,j,f[26],s[1001][1001],nr,k;
int main () {
    fin>>m>>n;
    for(i=1;i<=m;i++){
        for(j=1;j<=m;j++){
            fin>>v[i][j];
        }
    }
    for(i=1;i<=n;i++){
        for(j=1;j<=n;j++){
            fin>>x;
            f[x-'a']++;
        }
    }

    for(k=0;k<26;k++){
        for(i=1;i<=m;i++)
            for(j=1;j<=m;j++){
                s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1];
                if(v[i][j]==k+'a'){
                    s[i][j]++;
                }
            }
        for(i=n;i<=m;i++){
            for(j=n;j<=m;j++){
                if(s[i][j]-s[i][j-n]-s[i-n][j]+s[i-n][j-n]!=f[k]){
                    ok[i][j]=1;
                }
            }
        }
    }

    for(i=n;i<=m;i++){
        for(j=n;j<=m;j++){
            if(ok[i][j]==0)
                nr++;
        }
    }
    fout<<nr;
    return 0;
}