Proponowałbym tak:
#include <iostream>
using namespace std;
char T[505][505]; //tworzenie tablicy globalnej
int main() {
int W, K;
cin>>W>>K;
char A[K];
for(int i=1;i<=W;i++){//wczytanie tablicy numeracja od 1
cin>>A+1;
for(int j=1;j<=K;j++){
T[i][j]=A[j];
}
}
for(int i=1;i<=W;i++){
for(int j=1;j<=K;j++){
if(T[i][j]=='W'){
if(T[i-1][j]=='S' || T[i+1][j]=='S' || T[i][j+1]=='S' || T[i][j-1]=='S'){//jesli owca koło wilka to się nie da postawić psa
cout<<"Nie";
return 0;
} else{ //w przeciwnym wypadku otaczamy wilka psami
T[i-1][j]='D';
T[i+1][j]='D';
T[i][j+1]='D';
T[i][j-1]='D';
}
}
}
}
cout<<"Tak\n";
for(int i=1;i<=W;i++){//wypisanie tablicy
for(int j=1;j<=K;j++){
cout<<T[i][j];
}
cout<<endl;
}
return 0;
}
Jeśli koło wilka jest owca to nie da się postawić psa w przeciwnym wypadku można wilka otoczyć psami.