Cod sursa(job #2360672)

Utilizator anamariatoaderAna Toader anamariatoader Data 2 martie 2019 00:37:40
Problema Matrix Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <fstream>

using namespace std;
ifstream fin("matrix.in");
ofstream fout("matrix.out");

short int n,m,i,j,k,v[1001][1001][27];
int fr[27],nr;
char c;
bool ok;

int main(){
    fin>>m>>n;
    for(i=1;i<=m;i++)
      for(j=1;j<=m;j++){
          fin>>c;
          v[i][j][c-'a'+1]++;
      }
    for(i=1;i<=n;i++)
      for(j=1;j<=n;j++){
          fin>>c;
          fr[c-'a'+1]++;
      }
    for(k=1;k<=26;k++)
       if(fr[k]!=0){
          for(i=1;i<=m;i++)
            for(j=1;j<=m;j++)
              v[i][j][k]+=v[i-1][j][k]+v[i][j-1][k]-v[i-1][j-1][k];
       }
    for(i=n;i<=m;i++)
      for(j=n;j<=m;j++){
         ok=1;
         for(k=1;k<=26;k++)
             if(fr[k]!=0){
                if(v[i][j][k]-v[i-n][j][k]-v[i][j-n][k]+v[i-n][j-n][k]!=fr[k]){
                    ok=0;
                    break;
                }
             }
         if(ok)
            nr++;
      }
    fout<<nr;
    return 0;
}