Language: C++

//Shariful Islam(1804011)
//Chittagong University of Engineering & technology
#include<bits/stdc++.h>
#define pb push_back
#define fin(i,arr,n) for(i=0;i<n;i++)cin>>arr[i]
#define fout(i,arr,n) for(i=0;i<n;i++)cout<<arr[i]<<" "
#define inf 9223372036854775807
#define vi vector<ll>
#define init ll n,m,a,i,b,j,k,t,x,y,z,tc,u,v,w
#define pi acos(-1.00)
#define mod 1000000007
using namespace std;
typedef long long ll;
struct node{ll r,c;}n1;
ll dr[]={-1,0,1,0};
ll dc[]={0,-1,0,1};
ll R,C,a,b,x,y,k;
ll visit[1000005]={0};
char ch[1000005];
ll rsum[1000005]={0};
ll csum[1000005]={0};
ll f(ll i,ll j)
{
    return i*C+j+1;
}
bool valid(ll r,ll c)
{
  return (r>=0&&c>=0&&r<R&&c<C&&visit[f(r,c)]==0);

}

node inv(ll t)
{   node n1;
    if(t%C==0)
        {n1.r=t/C-1;n1.c=C-1;}
    else {n1.r= t/C;n1.c=(t%C)-1;}
    return n1;


}
ll fsum(ll i,ll r,ll c,ll tt)
{
    if(tt%2==0)
    {
        if(r==0)
            return csum[f(c,i)];
        else return csum[f(c,i)]-csum[f(r-1,i)];
    }
    else{
        if(r==0)
            return rsum[f(i,c)];
        else return rsum[f(i,c)]-rsum[f(i,r-1)];
    }
}
ll bfs(ll r1,ll c1,ll r2,ll c2)
{  ll dist[100005]={0};
   ll i,j;
   queue<ll>Q;
   Q.push(f(r1,c1));
   visit[f(r1,c1)]=1;
   dist[f(r1,c1)]=0;
   while(!Q.empty())
   {
       ll u=Q.front();Q.pop();
       n1=inv(u);
       for(i=0;i<4;i++)
       {
          for(j=1;j<=k;j++)
          {
              if(valid(n1.r+dr[i]*j,n1.c+dc[i]*j))
              {  if(i%2==0&&fsum(n1.c+dc[i]*j,n1.r,n1.r+dr[i]*j,i)==0)
              {
                 ll v=f(n1.r+dr[i]*j,n1.c+dc[i]*j);
                 visit[v]=1;
                 dist[v]=dist[u]+1;
                 if(v==f(r2,c2))
                    return dist[v];
                 Q.push(v);
              }
              else if(i%2==1&&fsum(n1.r+dr[i]*j,n1.c,n1.c+dc[i]*j,i)==0)
              {
                 ll v=f(n1.r+dr[i]*j,n1.c+dc[i]*j);
                 visit[v]=1;
                 dist[v]=dist[u]+1;
                 if(v==f(r2,c2))
                    return dist[v];
                 Q.push(v);
              }



              }
          }
       }
   }
return -1;
}
int main()
{  // ios_base::sync_with_stdio(false);  cin.tie(NULL); cout.tie(0);
      //freopen("read.txt","r",stdin);
      //freopen("write.txt","w",stdout);
      ll i,j,p,q,x;
     scanf("%lld %lld %lld %lld %lld %lld %lld",&R,&C,&k,&a,&b,&x,&y);
      for(i=0;i<R;i++)
      {
          for(j=0;j<C;j++)
          {    char c;
              cin>>c;
              ch[i*C+j+1]=c;
              if(c=='@')
                visit[i*C+j+1]=1;
             if(j==0)
              rsum[f(i,j)]=(c=='@');
             else rsum[f(i,j)]=(c=='@')+rsum[f(i,j-1)];
             if(i==0)
                csum[f(i,j)]=(c=='@');
             else
                csum[f(i,j)]=(c=='@')+csum[f(i-1,j)];


          }
      }
      /*f(i,R)
      {
          f(j,C)
          cout<<visit[i*C+j+1];
          cout<<endl;
      }*/
     /* for(i=0;i<R;i++)
      {
          for(j=0;j<C;j++)
          {
              cout<<rsum[f(i,j)]<<" ";
          }
          cout<<endl;
      }
      cout<<"__________"<<endl;
      for(i=0;i<R;i++)
      {
          for(j=0;j<C;j++)
          {
              cout<<csum[f(i,j)]<<" ";
          }
          cout<<endl;
      }*/
      cout<<bfs(a-1,b-1,x-1,y-1)<<endl;




}



Compiler output:
a.cc: In function 'bool valid(ll, ll)':
a.cc:28:33: error: reference to 'visit' is ambiguous
   28 |   return (r>=0&&c>=0&&r<R&&c<C&&visit[f(r,c)]==0);
      |                                 ^~~~~
In file included from /usr/include/x86_64-linux-gnu/c++/14/bits/stdc++.h:80,
                 from a.cc:3:
/usr/include/c++/14/variant:1855:5: note: candidates are: 'template<class _Visitor, class ... _Variants> constexpr std::__detail::__variant::__visit_result_t<_Visitor, _Variants ...> std::visit(_Visitor&&, _Variants&& ...)'
 1855 |     visit(_Visitor&& __visitor, _Variants&&... __variants)
      |     ^~~~~
a.cc:18:4: note:                 'll visit [1000005]'
   18 | ll visit[1000005]={0};
      |    ^~~~~
a.cc: In function 'll bfs(ll, ll, ll, ll)':
a.cc:60:4: error: reference to 'visit' is ambiguous
   60 |    visit[f(r1,c1)]=1;
      |    ^~~~~
/usr/include/c++/14/variant:1855:5: note: candidates are: 'template<class _Visitor, class ... _Variants> constexpr std::__detail::__variant::__visit_result_t<_Visitor, _Variants ...> std::visit(_Visitor&&, _Variants&& ...)'
 1855 |     visit(_Visitor&& __visitor, _Variants&&... __variants)
      |     ^~~~~
a.cc:18:4: note:                 'll visit [1000005]'
   18 | ll visit[1000005]={0};
      |    ^~~~~
a.cc:74:18: error: reference to 'visit' is ambiguous
   74 |                  visit[v]=1;
      |                  ^~~~~
/usr/include/c++/14/variant:1855:5: note: candidates are: 'template<class _Visitor, class ... _Variants> constexpr std::__detail::__variant::__visit_result_t<_Visitor, _Variants ...> std::visit(_Visitor&&, _Variants&& ...)'
 1855 |     visit(_Visitor&& __visitor, _Variants&&... __variants)
      |     ^~~~~
a.cc:18:4: note:                 'll visit [1000005]'
   18 | ll visit[1000005]={0};
      |    ^~~~~
a.cc:83:18: error: reference to 'visit' is ambiguous
   83 |                  visit[v]=1;
      |                  ^~~~~
/usr/include/c++/14/variant:1855:5: note: candidates are: 'template<class _Visitor, class ... _Variants> constexpr std::__detail::__variant::__visit_result_t<_Visitor, _Variants ...> std::visit(_Visitor&&, _Variants&& ...)'
 1855 |     visit(_Visitor&& __visitor, _Variants&&... __variants)
      |     ^~~~~
a.cc:18:4: note:                 'll visit [1000005]'
   18 | ll visit[1000005]={0};
      |    ^~~~~
a.cc: In function 'int main()':
a.cc:111:17: error: reference to 'visit' is ambiguous
  111 |                 visit[i*C+j+1]=1;
      |                 ^~~~~
/usr/include/c++/14/variant:1855:5: note: candidates are: 'template<class _Visitor, class ... _Variants> constexpr std::__detail::__variant::__visit_result_t<_Visitor, _Variants ...> std::visit(_Visitor&&, _Variants&& ...)'
 1855 |     visit(_Visitor&& __visitor, _Variants&&... __variants)
      |     ^~~~~
a.cc:18:4: note:                 'll visit [1000005]'
   18 | ll visit[1000005]={0};
      |    ^~~~~