Language: C++

#include<bits/stdc++.h>
using namespace std;
long long ans[25][25][25][25];
long long H , W;
char c[25][25];

struct az
{
	int x;
	int y;
	int cnt;
}q[1000005];

int main()
{
	scanf("%d%d",&H,&W);
	for(int i=1;i<=H;++i)
	   for(int j=1;j<=W;++j)
	       scanf(" %c",&c[i][j]);
	for(int i=1;i<=H;++i)
	{
		for(int j=1;j<=W;++j)
		{
			if(c[i][j]=='#') continue;
			int l=0,r=1;
			q[1].x=i;
			q[1].y=j;
			q[1].cnt=0;
			while(l<r)
			{
				++l;
				int dx=q[l].x;
				int dy=q[l].y;
				int now=q[l].cnt;
				if(dx > 1 && !ans[i][j][dx-1][dy] && c[dx-1][dy] !='#') 
				{
					++r;
					q[r].x=dx-1;
					q[r].y=dy;
					q[r].cnt=now+1;
					ans[i][j][dx-1][dy]=now+1;
				}
				if(dy > 1 && !ans[i][j][dx][dy-1] && c[dx][dy-1] !='#') 
				{
					++r;
					q[r].x=dx;
					q[r].y=dy-1;
					q[r].cnt=now+1;
					ans[i][j][dx][dy-1]=now+1;
				}
				if(dx < H && !ans[i][j][dx+1][dy] && c[dx+1][dy] !='#') 
				{
					++r;
					q[r].x=dx+1;
					q[r].y=dy;
					q[r].cnt=now+1;
					ans[i][j][dx+1][dy]=now+1;
				}
				if(dy < W && !ans[i][j][dx][dy+1] && c[dx][dy+1] !='#') 
				{
					++r;
					q[r].x=dx;
					q[r].y=dy+1;
					q[r].cnt=now+1;
					ans[i][j][dx][dy+1]=now+1;
				}
			}
		}
	}
	int sum=0;
	for(int i=1;i<=H;++i)
		for(int j=1;j<=W;++j)
			for(int k=1;k<=H;++k)
			   for(int s=1;s<=W;++s)
			       sum=max(sum,ans[i][j][k][s]);
	//cout<<ans[3][1][1][5]<<endl;
	printf("%lld\n",sum);
	return 0;
}

Compiler output:
a.cc: In function 'int main()':
a.cc:75:39: error: no matching function for call to 'max(int&, long long int&)'
   75 |                                sum=max(sum,ans[i][j][k][s]);
      |                                    ~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14/algorithm:60,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/stdc++.h:51,
                 from a.cc:1:
/usr/include/c++/14/bits/stl_algobase.h:257:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::max(const _Tp&, const _Tp&)'
  257 |     max(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/14/bits/stl_algobase.h:257:5: note:   template argument deduction/substitution failed:
a.cc:75:39: note:   deduced conflicting types for parameter 'const _Tp' ('int' and 'long long int')
   75 |                                sum=max(sum,ans[i][j][k][s]);
      |                                    ~~~^~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/14/bits/stl_algobase.h:303:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::max(const _Tp&, const _Tp&, _Compare)'
  303 |     max(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/14/bits/stl_algobase.h:303:5: note:   candidate expects 3 arguments, 2 provided
In file included from /usr/include/c++/14/algorithm:61:
/usr/include/c++/14/bits/stl_algo.h:5706:5: note: candidate: 'template<class _Tp> constexpr _Tp std::max(initializer_list<_Tp>)'
 5706 |     max(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/14/bits/stl_algo.h:5706:5: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/14/bits/stl_algo.h:5716:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::max(initializer_list<_Tp>, _Compare)'
 5716 |     max(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/14/bits/stl_algo.h:5716:5: note:   template argument deduction/substitution failed:
a.cc:75:39: note:   mismatched types 'std::initializer_list<_Tp>' and 'int'
   75 |                                sum=max(sum,ans[i][j][k][s]);
      |                                    ~~~^~~~~~~~~~~~~~~~~~~~~