Для тех, кто заинтересован, мне удалось решить оба набора тестов с помощью следующего кода:
#include <iostream>
#include <vector>
using namespace std;
int main() {
int T, N, R, C, SR, SC;
string str;
cin >> T;
for (int i = 1; i <= T; i++) {
cin >> N >> R >> C >> SR >> SC;
cin >> str;
SR -= 1;
SC -= 1;
vector<vector<bool> > a(R, vector<bool>(C));
a[SR][SC] = 1;
for (int j = 1; j <= N; j++) {
if (str.at(j-1) == 'E') {
while (a[SR][SC+1] == 1) {
SC += 1;
}
SC += 1;
a[SR][SC] = 1;
}
else if (str.at(j-1) == 'W') {
while (a[SR][SC-1] == 1) {
SC -= 1;
}
SC -= 1;
a[SR][SC] = 1;
}
else if (str.at(j-1) == 'S') {
while (a[SR+1][SC] == 1) {
SR += 1;
}
SR += 1;
a[SR][SC] = 1;
}
else if (str.at(j-1) == 'N') {
while (a[SR-1][SC] == 1) {
SR -= 1;
}
SR -= 1;
a[SR][SC] = 1;
}
}
cout << "Case #" << i << ": " << SR+1 << " " << SC+1 << endl;
}
return 0;
}