Advertisement
Guest User

Untitled

a guest
Oct 25th, 2016
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.99 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main(){
  5.     ios::sync_with_stdio(false);
  6.  
  7.     int nf, mf;
  8.     cin >> nf >> mf;
  9.  
  10.     vector<int> a(mf, -1);
  11.     vector<string> f(nf);
  12.    
  13.     for(int i = 0; i < nf; i++){
  14.         cin >> f[i];
  15.         for(int j = 0; j < mf; j++)
  16.             if(f[i][j] == '*')
  17.                 a[j] = i;
  18.     }
  19.  
  20.     int nt, mt;
  21.     cin >> nt >> mt;
  22.  
  23.     vector<int> b(mt, nt);
  24.     vector<string> t(nt);
  25.    
  26.     for(int i = 0; i < nt; i++){
  27.         cin >> t[i];
  28.         for(int j = 0; j < mt; j++)
  29.             if(t[i][j] == '#' && b[j] == nt)
  30.                 b[j] = i;
  31.     }
  32.  
  33.     int ans = 0;
  34.  
  35.     for(int d = -700; d <= 700; d++){
  36.         int val = 0;
  37.         int v = 5000;
  38.         for(int i = 0; i < mf; i++)
  39.             if(i+d >= 0 && i+d < mt && a[i] != -1 && b[i+d] != nt)
  40.                 v = min(v, nf-a[i]-1+b[i+d]);
  41.         if(v == 5000) continue;
  42.         for(int i = 0; i < nf; i++)
  43.             for(int j = 0; j < mf; j++)
  44.                 if(f[i][j] == '*' && i+v-nf >= 0 && i+v-nf < nt && j+d-1 >= 0 && j+d-1 < mt && t[i+v-nf][j+d-1] == '#')
  45.                     val++;
  46.         ans = max(ans, val);
  47.     }
  48.  
  49.     cout << ans;
  50.  
  51.     return 0;
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement