1293C. NEKO's Maze Game - Codeforces Solution C++

  Problem Link : 1293C. NEKO's Maze Game 


✅ C++ Solution :

 
#include<bits/stdc++.h>
using namespace std;
 
bool arr[3][100000+2];
int n;
int total;
bool func(int r,int c)
{
  if(r<1 || r>2 || c<1 || c>n)
    return 0;
  if(arr[r][c])
  {
      total++;
      return 1;
  }
  else
      return 0;
}
 
int main()
{
  int q;
  cin>>n>>q;
  total = 0;
  memset(arr,0,sizeof(arr));
  while(q--)
  {
    int r,c;
    bool ans;
    cin>>r>>c;
    arr[r][c]=arr[r][c]^1;
    if(arr[r][c])
    {
      
      bool a = func(r+1,c); 
      bool b=func(r-1,c);
      bool p = func(r+1,c+1);
      bool d = func(r+1,c-1);
      bool e= func(r-1,c+1);
      bool f =func(r-1,c-1);
    //  cout<<r<<c<<" "<<d;
      if(a || b || p || d || e || f)
        ans=0;
      else
      {
        if(total==0)
          ans=1;
        else
          ans=0;
      }
 
    }
    else 
    {
      if(r==1)
      {
        if(arr[r+1][c])
          total--;
        if(arr[r+1][c-1])
          total--;
        if(arr[r+1][c+1])
          total--;
      }
      else
      {
        if(arr[r-1][c])
          total--;
        if(arr[r-1][c-1])
          total--;
        if(arr[r-1][c+1])
          total--;  
      }
      if(total==0)
        ans=1;
      else
        ans=0;
    }
    if(ans)
        cout<<"Yes\n";
    else
        cout<<"NO\n";  
  }
  

 

Thank you for your patience reading. If you enjoyed this post, I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Whatsapp or Facebook. 

😇Happy Learning!!