제출 #833866

#제출 시각아이디문제언어결과실행 시간메모리
833866vjudge1Bomb (IZhO17_bomb)C++17
24 / 100
386 ms60124 KiB
#include <bits/stdc++.h>
using namespace std; 

int dpHorizontal[2505][2505] = {0}; 
int dpVertical[2505][2505] = {0}; 
char arr[2505][2505]; 

int main()
{
	int n, m; 
	cin >> n >> m; 
	for(int i = 0; i < n; i++)
	{
		for(int j = 0; j < m; j++)
		{
			cin >> arr[i][j]; 
		}
	}
	int res = 0; 
	int sum = 0; 
		
	for(int i = 1; i <= n; i++)
	{
		for(int j = 1; j <= m; j++)
		{
			if(arr[i - 1][j - 1] == '1')
			{
				dpHorizontal[i][j] = dpHorizontal[i][j - 1] + 1; 
			}
		}
	}
		
	for(int i = 1; i <= m; i++)
	{
		for(int j = 1; j <= n; j++)
		{
			if(arr[j - 1][i - 1] == '1')
			{
				dpVertical[j][i] = dpVertical[j - 1][i] + 1; 
			}
		}
	}
		
		
	int minHorizontal = -1; 
    for(int i = 1; i <= n; i++)
    {
     	for(int j = 1; j <= m; j++)
     	{
     		if(dpHorizontal[i][j + 1] == 0 && dpHorizontal[i][j] > 0)
          	{
     		    	if(minHorizontal == -1)
     		    	{
     		    		minHorizontal = dpHorizontal[i][j]; 
			    	}
			    	else minHorizontal = min(minHorizontal, dpHorizontal[i][j]); 
		     	}
			}
		}
//		cout << minHorizontal << endl; 
		int minVertical = -1; 
		for(int i = 1; i <= m; i++)
     	{
     		for(int j = 1; j <= n; j++)
     		{
     			if(dpVertical[j + 1][i] == 0  && dpVertical[j][i] > 0)
     	      	{
     		    	if(minVertical == -1)
     		    	{
     		    		minVertical = dpVertical[j][i]; 
			    	}
			    	else minVertical= min(minVertical, dpVertical[j][i]); 
		     	}
			}
		}
		res = minHorizontal * minVertical; 
		

	cout << res << endl; 
	return 0; 
}

컴파일 시 표준 에러 (stderr) 메시지

bomb.cpp: In function 'int main()':
bomb.cpp:20:6: warning: unused variable 'sum' [-Wunused-variable]
   20 |  int sum = 0;
      |      ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...