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...