View Code of Problem 17

#include<iostream>

using namespace std;

int k = 0;

void func(int **arr, int i, int j, int n, int m, int temp)
{
	if (i > 0)
		if (arr[i][j] < arr[i - 1][j])
			func(arr, i - 1, j, n, m, temp + 1);
	if (i < n - 1)
		if (arr[i][j] < arr[i + 1][j])
			func(arr, i + 1, j, n, m, temp + 1);
	if (j > 0)
		if (arr[i][j] < arr[i][j - 1])
			func(arr, i, j - 1, n, m, temp + 1);
	if (j < m - 1)
		if (arr[i][j] < arr[i][j + 1])
			func(arr, i, j + 1, n, m, temp + 1);
	if (temp > k)
		k = temp;
}

int main() {
	int n, m;
	while (cin >> n >> m)
	{
		int **arr = new int*[n];
		for (int i = 0; i < n; i++)
		{
			arr[i] = new int[m];
			for (int j = 0; j < m; j++)
				cin >> arr[i][j];
		}
		for (int i = 0; i < n; i++)
			for (int j = 0; j < m; j++)
				func(arr, i, j, n, m, 0);
		cout << k << endl;
		k = 0;
	}
	return 0;
}

Double click to view unformatted code.


Back to problem 17