Problem2369--暑假提高组模拟测试卷四 T4 OI排名

2369: 暑假提高组模拟测试卷四 T4 OI排名

Time Limit: 1.000 Sec  Memory Limit: 128 MB
Submit: 0  Solved: 0
[Submit] [Status] [Web Board] [Creator:][下载测试数据]

Description

小明作为一名 OIer,最近想要自己举办一个比赛。比赛最后,显然需要对参赛选手进行排名,排名规则是这样的:首先小明会根据参赛选手 AC 题目的数量进行排名,如果两个人 AC 题目的数量相同,那么就会按照这两个人完成题目的时间长短来排,即用时短的排在前面。

现在有 n 个人前来参赛,简单起见,将这 n 个人编号为 0,1,2,.......,n-1,这些人编号越大,他的用时就越短。比赛最后,小明获得了每一个人的 AC 题目的信息,这样的信息共有 m 条。这些信息可能有三种情况,分别是 "A > B","A = B", "A < B",其中 A 和 B 为整数表示选手的编号,保证为 [0,n-1] 之间的数字,这些信息分别表示 A 的 AC 题目数多于 B,A 的 AC 题目数等于 B,A 的 AC 题目数少于 B。

现在,小明想要根据这些信息来确定 n 名选手最终的排名。但是,这些信息可能是不完整的,或者说可能有冲突。所以,在确定排名前,小明需要聪明的你先帮他检验一下这些信息。

如果可以根据这些信息确定最终的排名,那么输出 yes。否则,无法确定这些选手的排名,说明这些信息可能是不完整的,或者可能有冲突。那么,请你根据原因输出:如果是因为信息不完整(信息量不够)导致无法确定排名,则输出 not enough,如果是因为信息有冲突(矛盾),则输出 contradiction。

值得注意的是,如果这些信息既不完整又有冲突,则输出 contradiction。



Input

本题测试数据包含多组数据,输入请处理到文件末尾。

每组测试数据第一行包含两个空格隔开整数 n 和 m,分别表示参赛的人数和每个人 AC 题目的信息的数量。

接下来有 m 行,每行输入一个信息,信息格式为 "A op B",其中 A 和 B 为整数表示选手的编号,都在 [0,n-1] 之间,op 表示 ">","=","<" 三种情况中的一种。保证符号与数字之间有一个空格相隔,可能会出现重复的信息。



Output

对于每一组测试数据,输出一行。

如果这些信息可以确定 n 个人的排名,则输出 yes。

如果因为这些信息不完整(信息量不够),则输出 not enough。

如果因为这些信息冲突(矛盾),则输出 contradiction。

【注意】

如果这些信息既不完整又有冲突,依然输出 contradiction。



Sample Input

3 3
0 > 1
1 < 2
0 > 2
4 4
1 = 2
1 > 3
2 > 0
0 > 1
3 3
1 > 0
1 > 2
2 < 1

Sample Output

yes
contradiction
not enough

HINT

【样例解释】

样例总共有 3 组数据:

对于第 1 组数据,我们可以确定三个人的排名从高到低为 0,2,1,因此输出 yes。

对于第 2 组数据,有 4 个人,其中 "1 = 2" 这条信息,显然是有冲突的,根据题目的排名规则,不会有两个人名次相同,因此输出 contradiction。

对于第 3 组数据,三个人的排名可以是 1,0,2 或 1,2,0,因为信息不足导致无法确定排名,所以输出 not enough。

【数据范围】

对于 20% 的数据,0 < N < 20;

对于 40% 的数据,0 < N < 70;

对于 70% 的数据,0 < M < 2000;

对于 100% 的数据,0 < N < 10000,0 < M < 20000,数据组数 < 30。



Source/Category

 

[Submit] [Status]