Submission #761562

#TimeUsernameProblemLanguageResultExecution timeMemory
761562gggkikJOI 문장 (JOI14_ho_t1)C++14
100 / 100
62 ms2340 KiB
#include <bits/stdc++.h> using namespace std; const int MXN = 1005; char A[MXN][MXN], c[5][5]; int n, m; int ck(int x,int y){ int o = 1; for(int i = 0;i<2;i++) for(int j = 0;j<2;j++) if(A[x+i-1][y+j-1]!=c[i][j]) o = 0; return o; } int main() { cin.tie(0)->sync_with_stdio(0); cin >> n >> m; for(int i = 0;i<n;i++){ for(int j = 0;j<m;j++) cin >> A[i][j]; } for(int i = 0;i<2;i++) for(int j = 0;j<2;j++) cin >> c[i][j]; int cnt = 0; for(int i = 1;i<n;i++) for(int j = 1;j<m;j++){ cnt += ck(i,j); } string L = "JOI"; int ans = 0; for(int i = 0;i<n;i++){ for(int j = 0;j<m;j++){ char k = A[i][j]; int down = 0; for(int di = 0;di<2;di++) for(int dj = 0;dj<2;dj++) if(i+di && j+dj && i+di!=n && j+dj!=m) down += ck(i+di,j+dj); for(auto l : L) { int up = 0; A[i][j] = l; for(int di = 0;di<2;di++) for(int dj = 0;dj<2;dj++) if(i+di && j+dj && i+di!=n && j+dj!=m) up += ck(i+di,j+dj); ans = max(ans,cnt-down+up); } A[i][j] = k; } } cout << ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...