#include <stdio.h>#include <string.h>#include <iostream>using namespace std;#include <deque>const int max_m = 100, N = 'Z' - 'A' + 1;bool flag[30][30] = { 0 };// if the relations between i and j have been givenbool IsSmall[30][30] = { 0 };//IsSmall[i][j]==true, means i is smaller than j//bool visited[30][30] = { 0 };//int n[max_m + 10][2] = { 0 };//store the input
/*void dfs(int i, int j){
if (visited[i][j]) return;
visited[i][j] = true;scanf("%d", &tests);int k = 0;
for (k = 0; k < N; ++k){
if (IsSmall[j][k]) dfs(j, k);
}
return;
}*/
int main()
{
int tests = 0;memset(flag, 0, sizeof(flag));for (int t = 1; t <= tests; ++t){
int m = 0, i = 0, j = 0, k = 0;
int a = 0, b = 0;
scanf("%d", &m); cin.get();a = v1 - 'A'; b = v2 - 'A';memset(IsSmall, 0, sizeof(IsSmall));
char v1, v2, r;
for (i = 0; i < m; ++i){
scanf("%c%c%c", &v1, &r, &v2); cin.get();n[i][0] = b; n[i][1] = a;flag[a][b] = flag[b][a] = true;
if (r == '<'){
IsSmall[a][b] = true;
n[i][0] = a; n[i][1] = b;
}
else{
IsSmall[b][a] = true;
}
}if (IsSmall[i][k] && IsSmall[k][j]) IsSmall[i][j] = true;/*for (i = 0; i < m; ++i){
if (!visited[i]) dfs(n[i][0], n[i][1]);
}*/
for (i = 0; i < N; ++i)
for (j = 0; j < N; ++j)
for (k = 0; k < N; ++k){
}
printf("Case %d:\n", t);IsNone = false;bool IsNone = true;
for (i = 0; i < N; ++i)
for (j = 0; j < N; ++j){
if (i == j) continue;
if (IsSmall[i][j] && !flag[i][j]){
printf("%c<%c\n", 'A' + i, 'A' + j);
}
}
if (IsNone)}printf("NONE\n");
}return 0;
Professor John(DP)
最新推荐文章于 2022-02-09 21:55:44 发布