fork download
  1. #include<cstdio>
  2. #include<cstring>
  3.  
  4. struct st{
  5. int s_no;
  6. bool val;
  7. };
  8.  
  9. typedef struct st Statement;
  10.  
  11. bool contra = false;
  12.  
  13. Statement sts[101];
  14. int vals[101];
  15.  
  16. int fr[101];
  17. int from;
  18.  
  19. void traverse(int sn){
  20. fr[sn] = from;
  21. Statement s = sts[sn];
  22. if((vals[sn]==1&&s.val)||(vals[sn]==0&&!s.val)){
  23. if(vals[s.s_no]==0){
  24. contra = true;
  25. return;
  26. }
  27. else if(vals[s.s_no]==-1){
  28. vals[s.s_no] = 1;
  29. traverse(s.s_no);
  30. }
  31. }
  32. else{
  33. if(vals[s.s_no]==1){
  34. contra = true;
  35. return;
  36. }
  37. else if(vals[s.s_no]==-1){
  38. vals[s.s_no]=0;
  39. traverse(s.s_no);
  40. }
  41. }
  42. }
  43.  
  44. int main(){
  45. int n,j,i;
  46. char str[10];
  47. while(1){
  48. scanf("%d",&n);
  49. if(!n) break;
  50. for(i=1;i<=n;i++){
  51. scanf("%d",&(sts[i].s_no));
  52. scanf("%s",str);
  53. if(strcmp(str,"false")){
  54. sts[i].val = true;
  55. }
  56. else sts[i].val = false;
  57. vals[i] = -1;
  58. }
  59. for(j=1;j<=100;j++){
  60. if(vals[j]!=-1) continue;
  61. contra = false;
  62. vals[j] = 1;
  63. from = j;
  64. traverse(j);
  65. if(contra){
  66. for(i=1;i<=n;i++) if(fr[i]==j) vals[i] = -1;
  67. vals[j] = 0;
  68. contra = false;
  69. traverse(j);
  70. }
  71. if(contra) break;
  72. }
  73. if(!contra) printf("NOT ");
  74. printf("PARADOX\n");
  75.  
  76. }
  77. return 0;
  78. }
Success #stdin #stdout 0s 5284KB
stdin
7
4 true
5 true
6 true
6 true
6 true
3 true
4 true
4
2 false
3 true
2 true
1 false
9
2 false
2 true
1 true
4 false
7 false
4 true
6 true
1 true
7 false
14
4 false
7 false
11 true
8 false
6 false
12 true
6 true
2 false
11 false
12 true
8 true
10 true
5 true
2 false
15
3 true
1 false
7 false
14 false
13 false
1 false
1 true
1 false
1 false
10 false
1 false
9 false
14 false
8 true
13 false
5
4 true
1 true
2 true
3 false
3 true
17
3 true
9 false
6 true
15 true
11 false
2 true
7 false
10 true
15 true
15 false
1 true
7 false
8 true
11 true
5 false
12 false
5 false
3
1 false
2 false
1 false
8
2 false
3 true
1 true
4 false
4 true
4 false
4 false
1 false
14
2 false
2 false
9 false
13 true
9 false
1 false
7 false
13 true
13 false
13 true
10 true
13 false
6 true
5 false
15
3 false
5 false
7 false
7 false
13 false
12 true
11 false
12 true
14 true
12 false
9 true
4 false
8 true
1 false
12 false
2
1 false
1 false
6
1 true
5 false
4 false
5 false
3 true
2 true
16
15 false
3 true
12 false
11 true
3 false
7 true
8 false
8 true
4 false
2 false
14 false
10 true
5 true
10 true
13 true
1 false
15
7 true
9 false
4 false
13 false
3 false
11 true
1 false
2 false
4 true
5 false
10 false
5 true
11 false
8 true
1 false
12
3 true
2 true
2 true
8 false
3 false
6 true
4 false
11 false
10 true
4 true
3 true
3 false
11
6 false
5 false
5 false
8 false
9 false
3 false
4 false
1 false
4 true
3 false
4 true
4
1 true
3 false
2 true
1 true
8
4 false
7 false
5 false
6 false
1 true
3 true
1 true
6 false
11
8 false
5 true
10 true
4 true
3 true
9 true
3 true
9 false
2 true
5 false
4 true
0
stdout
NOT PARADOX
NOT PARADOX
PARADOX
NOT PARADOX
PARADOX
PARADOX
PARADOX
PARADOX
PARADOX
PARADOX
NOT PARADOX
PARADOX
NOT PARADOX
NOT PARADOX
PARADOX
NOT PARADOX
NOT PARADOX
PARADOX
PARADOX
PARADOX