#include #include #include #include #include #include using namespace std; int team=0; ifstream in; ofstream out; int debug=0; void solve(); int main(int argc, char *argv[]) { char datfilename[100]; char outfilename[100]; sprintf(datfilename, "prob%d.dat", NUMBER); sprintf(outfilename, "prob%d.out", NUMBER); for (int argi=1; argi> defn) { i = 0; int lhs = cell_index(defn, i); i += 7; if (order[lhs] < 0) { order[lhs] = count++; } while (i < defn.length() && (j = defn.find("R", i)) != string::npos) { int rhs = cell_index(defn, j); if (order[rhs] < 0) { order[rhs] = count++; } graph[order[lhs]][order[rhs]] = true; i = j + 6; } } for (k = 0; k < count; k++) { for (i = 0; i < count; i++) { for (j = 0; j < count; j++) { graph[i][j] |= (graph[i][k] && graph[k][j]); } } } for (i = 0; i < max_cell; i++) { if (order[i] < 0) continue; k = order[i]; for (j = 0; j < count; j++) { if (j != k && graph[k][j] && graph[j][k]) { break; } } print_cell(i); if (j < count) { out << " circular" << endl; } else { out << " ok" << endl; } } }