PTA 7-2スタック操作正当性(20点)20点コード

1276 ワード

(注:ブログはコミュニケーションとして使用され、宿題をパクリしないでください)
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#define PI acos(-1.0)
#define in freopen("in.txt", "r", stdin)
#define out freopen("out.txt", "w", stdout)
using namespace std;
typedef long long ll;
const int maxn = 200 + 7, INF = 0x3f3f3f3f, mod = 1e9 + 7;
int n, m, len;
char s[maxn];

void solve() {
    int cnt = 0;
    for(int i = 0 ; i < len; ++i) {
        if(s[i] == 'S') cnt++;
        else if(s[i] == 'X') cnt--;
        if(cnt > m || cnt < 0) { puts("NO"); return; }
    }
    if(cnt != 0) { puts("NO"); return; }
    puts("YES");
}

int main() {
    scanf("%d %d", &n, &m);
    for(int i = 0; i < n; ++i) {
        scanf("%s", s);
        len = strlen(s);
        solve();
    }

    return 0;
}

/*
4 10
SSSXXSXXSX
SSSXXSXXS
SSSSSSSSSSXSSXXXXXXXXXXX
SSSXXSXXX
*/