Cod sursa(job #1278559)

Utilizator ovidiuz98Zamfir Ovidiu ovidiuz98 Data 29 noiembrie 2014 01:21:25
Problema Matrix Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>

using namespace std;
ifstream fin("matrix.in");
ofstream fout("matrix.out");
int b[1001][1001],n,m,i,j,v[27],C[1001][1001],c,nr;
int N[1001][1001];
char x;
int main(){
    fin>>n>>m;
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++){
            fin>>x;
            N[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++){
                b[i][j]=b[i-1][j]+b[i][j-1]-b[i-1][j-1]+(N[i][j]==c);
                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;
    fin.close();fout.close();
    return 0;
}