poj 1094 Sorting It All Out
来源:互联网 发布:淘宝客关键词选择 编辑:程序博客网 时间:2024/06/06 04:02
Description
An ascending sorted sequence of distinct values is one in which some form of a less-than operator is used to order the elements from smallest to largest. For example, the sorted sequence A, B, C, D implies that A < B, B < C and C < D. in this problem, we will give you a set of relations of the form A < B and ask you to determine whether a sorted order has been specified or not.
Input
Input consists of multiple problem instances. Each instance starts with a line containing two positive integers n and m. the first value indicated the number of objects to sort, where 2 <= n <= 26. The objects to be sorted will be the first n characters of the uppercase alphabet. The second value m indicates the number of relations of the form A < B which will be given in this problem instance. Next will be m lines, each containing one such relation consisting of three characters: an uppercase letter, the character "<" and a second uppercase letter. No letter will be outside the range of the first n letters of the alphabet. Values of n = m = 0 indicate end of input.
Output
For each problem instance, output consists of one line. This line should be one of the following three:
Sorted sequence determined after xxx relations: yyy...y.
Sorted sequence cannot be determined.
Inconsistency found after xxx relations.
where xxx is the number of relations processed at the time either a sorted sequence is determined or an inconsistency is found, whichever comes first, and yyy...y is the sorted, ascending sequence.
Sorted sequence determined after xxx relations: yyy...y.
Sorted sequence cannot be determined.
Inconsistency found after xxx relations.
where xxx is the number of relations processed at the time either a sorted sequence is determined or an inconsistency is found, whichever comes first, and yyy...y is the sorted, ascending sequence.
Sample Input
4 6A<BA<CB<CC<DB<DA<B3 2A<BB<A26 1A<Z0 0
Sample Output
Sorted sequence determined after 4 relations: ABCD.Inconsistency found after 2 relations.Sorted sequence cannot be determined.
#include <iostream>#include <cstdio>#include <cstring>#include <queue>using namespace std;bool Map[50][50];int du[50];int n,m;queue<int >que;void Empty(){ while(!que.empty()) que.pop();}int Topo(){ int test[30]; int result = 1; for(int i=1;i<=n;i++) test[i] = du[i]; for(int i=1;i<=n;i++) { int cont = 0; int pos; for(int j=1;j<=n;j++) { if(test[j] == 0) { cont++; pos = j; } } if(cont == 0) return 0; if(cont > 1) result = -1; que.push(pos); test[pos] = -1; for(int j=1;j<=n;j++) { if(Map[pos][j]) test[j]--; } } return result;}int main(){ //freopen("in.txt","r",stdin); while(cin>>n>>m) { if(n == 0 && m == 0) break; memset(Map,false,sizeof(Map)); memset(du,0,sizeof(du)); char str[3]; bool flag = false; int To; for(int i=1;i<=m;i++) { Empty(); cin>>str; if(flag) continue; int a = str[0] - 'A' + 1; int b = str[2] - 'A' + 1; Map[a][b] = true; du[b]++; To = Topo(); if(To == 0) { flag = true; printf("Inconsistency found after %d relations.\n",i); } else if(To == 1) { flag = true; printf("Sorted sequence determined after %d relations: ",i); while(!que.empty()) { int t = que.front(); printf("%c",t + 'A' - 1); que.pop(); } printf(".\n"); } } if(To == -1) printf("Sorted sequence cannot be determined.\n"); } return 0;}
0 0
- poj 1094 Sorting It All Out
- poj 1094 Sorting It All Out
- poj 1094 Sorting It All Out
- [POJ] 1094 Sorting It All Out
- POJ-1094 Sorting It All Out
- POJ-1094-Sorting It All Out
- POJ 1094 Sorting It All Out
- POJ 1094 Sorting It All Out
- POJ 1094 Sorting It All Out
- poj-1094-Sorting It All Out
- POJ 1094 Sorting It All Out
- poj 1094 Sorting It All Out
- POJ 1094 Sorting It All Out
- POJ-1094-Sorting It All Out
- poj 1094 Sorting It All Out
- poj 1094 Sorting It All Out(图论)
- poj 1094 Sorting It All Out
- POJ 1094 Sorting It All Out
- 南邮 OJ 1272 可重复最优分解问题
- C# Serializable
- source insight 阅读乱码问题
- hdu 2955 (简单dp)
- 获取UINavgationController的退出事件
- poj 1094 Sorting It All Out
- sql 身份验证模式
- Mysql 常用命令行大全
- 大型数据库应用解决方案
- Android的Touch事件处理机制介绍
- 南邮 OJ 1275 登山机器人问题
- hdu 5352 MZL's City (最大流 || 费用流)
- weblogic安装问题
- 网站优化之网站结构诊断技巧