Submission #1133523

#TimeUsernameProblemLanguageResultExecution timeMemory
1133523nuutsnoyntonJOI 문장 (JOI14_ho_t1)C++20
100 / 100
54 ms8264 KiB
#include<bits/stdc++.h> using namespace std; using ll = long long; ll a[1002][1002], b[5]; ll to_numb[257] = {0}; int main() { ll n, m, r, x, y, i, j,cnt1,cnt, ans, t,s; cin >> n >> m; to_numb['J'] = 1; to_numb['O'] = 2; to_numb['I'] = 3; string str; for (i = 1; i <= n; i ++) { cin >> str; for (j = 1; j <= m; j ++) { a[i][j] = to_numb[str[j- 1]]; } } cin >> str; b[0] = to_numb[str[0]]; b[1] = to_numb[str[1]]; cin >> str; b[2] = to_numb[str[0]]; b[3] = to_numb[str[1]]; cnt = 0; for (i = 1; i < n; i ++) { for (j = 1; j < m; j++) { if ( a[i][j] == b[0] && a[i][j + 1] == b[1] && a[i + 1][j] == b[2] && a[i + 1][j + 1] == b[3]) cnt ++; } } ans =cnt; for (i = 1; i <= n; i ++) { for (j = 1; j <= m; j ++) { cnt1 = cnt; x = a[i][j]; if ( a[i - 1][j - 1] == b[0] && a[i -1][j] == b[1] && a[i][j - 1] == b[2] && a[i][j] == b[3]) cnt1 --; if ( a[i - 1][j] == b[0] && a[i -1][j + 1] == b[1] && a[i][j] == b[2] && a[i][j + 1] == b[3]) cnt1 --; if ( a[i][j - 1] == b[0] && a[i][j] == b[1] && a[i + 1][j - 1] == b[2] && a[i + 1][j] == b[3]) cnt1 --; if ( a[i][j] == b[0] && a[i][j + 1] == b[1] && a[i + 1][j ] == b[2] && a[i + 1][j + 1] == b[3]) cnt1 --; for ( r = 1; r <= 3; r ++) { s =cnt1; a[i][j] = r; if ( a[i - 1][j - 1] == b[0] && a[i -1][j] == b[1] && a[i][j - 1] == b[2] && a[i][j] == b[3]) s ++; if ( a[i - 1][j] == b[0] && a[i -1][j + 1] == b[1] && a[i][j] == b[2] && a[i][j + 1] == b[3]) s ++; if ( a[i][j - 1] == b[0] && a[i][j] == b[1] && a[i + 1][j - 1] == b[2] && a[i + 1][j] == b[3]) s ++; if ( a[i][j] == b[0] && a[i][j + 1] == b[1] && a[i + 1][j ] == b[2] && a[i + 1][j + 1] == b[3]) s ++; ans = max(ans, s); } a[i][j] =x; ans = max(ans, s); } } cout << ans << endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...