Only 2 test cases are getting passed

#include
using namespace std;
int main()
{
int n,m,k,s;
cin>>n>>m>>k>>s;
char a[100][100];
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cin>>a[i][j];
}
}
int i=0,j=0;
while(true)
{

    if(a[i][j]=='.')
    {
        s-=2;
        // j++;
        s--;
    }
    if(a[i][j]=='*')
    {
        s+=5;
        // j++;
        s--;
    }
    if(a[i][j]=='#')
    {
        i++;
        j=-1;
        if(i>n-1)
        {
            if(s>=k)
            {
                cout<<"Yes"<<endl<<s<<endl;
            }
            else
            {
                cout<<"No";
            }
            break;

        }            
    }                
    
    if(j==m-1 && i==n-1)
    {
        if(s>=k)
        {
            cout<<"Yes"<<endl<<s<<endl;
        }
        else
        {
            cout<<"No";
        }
        break;
    }
    j++;
    
    
    if(j>m-1)
    {
        if(a[i][j-1]!='#')
        {
            s++;
        }
        j=0;
        i++;

        
        if(i>n-1)
        {
            if(s>=k)
            {
                cout<<"Yes"<<endl<<s<<endl;
            }
            else
            {
                cout<<"No";
            }
            break;
        }
    }
    // cout<<i<<" "<<j<<" "<<s<<endl;
}
return 0;
}

You simply need to include these conditions in your code as,

for (int i = 0; i < r; i++)
{
for (int j = 0; j < c; j++)
{
if(s<k)
{
break;
}
if (a[i][j] == β€˜.’)
{
s = s - 2;
}
if (a[i][j] == β€˜*’)
{
s = s + 5;
}
if (a[i][j] == β€˜#’)
{
break;
}
if (j<c-1)
{
s–;
}
}
}

if (s >= k)
{
cout << β€œYes” << endl << s;
}
else
{
cout << β€œNo”;
}