Professor John(DP)
2016-03-20 21:27
369 查看
#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;
相关文章推荐
- JavaScript学习之路
- 模拟,找次品硬币,Counterfeit Dollar(POJ 1013)
- nodejs
- jquery data attr val 用法
- No.4小白的HTML+CSS心得篇
- css实现垂直水平居中
- 关于前端HTML/CSS几个问题
- CSS垂直居中和水平居中
- jsp笔记,包括编译指令和动作指令,九大对象等
- DOM操作样式
- CSS垂直居中和水平居中
- js设计模式-工厂模式(XHR工厂)
- JQuery MultiSelect(左右选择框)
- HTML基础2 表单和框架
- MEAN Stack入门-1: Node.js-to-AngularJS组件介绍
- JavaScript学习笔记(一)
- previously initiated loading for a different type with name "javax/servlet/ServletContext"
- js设计模式-工厂模式(抽象工厂)
- AngularJS中的指令实践开发指南(二)
- 学习前端的第一天~