#include <iostream>
#include <stdio.h>
#include <cctype>
#include <list>
#include <vector>
using namespace std;
struct STATE {
int id;
bool send;
};
int main() {
int T, n;
cin >> T >> n;
getchar();
while (T--) {
vector<list<STATE> > A;
for (int k = 0; k < n; ++k) {
string s;
getline(cin, s);
list<STATE> cur;
for (int i = 0; i < s.length();) {
STATE x;
x.send = s[i] == 'S';
x.id = 0;
while (isdigit(s[++i])) x.id = x.id * 10 + s[i] - '0';
++i;
cur.push_back(x);
}
A.push_back(cur);
}
while (true) {
bool done = true;
bool refreshed = false;
for (int i = 0; i < n; ++i) if (!A[i].empty()) {
done = false;
if (!A[i].begin()->send) {
int idx = A[i].begin()->id;
if (!A[idx].empty() && A[idx].begin()->send && A[idx].begin()->id == i) {
A[idx].erase(A[idx].begin());
A[i].erase(A[i].begin());
refreshed = true;
break;
}
}
}
if (done) {
cout << 0 << endl;
break;
} else if (!refreshed) {
cout << 1 << endl;
break;
}
}
}
return 0;
}
CCF CSP 竞赛试题——消息传递接口(201903-4)
猜你喜欢
转载自blog.csdn.net/Touchig/article/details/102837261
今日推荐
周排行