#include #include #include #include using namespace std; int n; char input[256]; int valid[256][256]; void doit() { // cout << n << endl; for (int i = 0; i < n; i++) { valid[i][i] = 1; valid[i][i+1] = 1; } for (int k = 2; k < n; k++) for (int i = 0; i + k <= n; i++) { int j = i+k; valid[i][j] = (input[i] == '{' && input[j-1] == '}' && valid[i+1][j-1]); for (int p = i+1; p < j-1; p++) valid[i][j] |= (input[p] == ',' && valid[i][p] && valid[p+1][j]); // cout << i << ", " << k << " -> " << valid[i][j] << endl; } } int main() { FILE *in = fopen("fool.in", "r"); fgets(input, 256, in); int kases; sscanf(input, "%d", &kases); for (int kase = 1; kase <= kases; kase++) { fgets(input, 256, in); n = strlen(input) - 1; cout << "Word #" << kase << ": "; doit(); if (input[0] == '{' && input[n-1] == '}' && valid[1][n-1]) cout << "Set" << endl; else cout << "No Set" << endl; } return 0; }