1+ #include <stdbool.h>
12#include <stdio.h>
2- #include "genlib.h"
3- #include "simpio.h"
4- //afairese = remove
3+
4+ //afairesi = remove
55//red checks if universe is already in resault
66//yellow checks if universe is already traversed
77void afairesi (int a ,int b ,int pl ,int number ,int table [pl ][number ],int arxikoCount [pl ],int uncoveredCount [pl ],int metablitoCount [pl ],int col_table [number ],int keep );
88bool check (int pl ,int uncoveredCount [pl ]);
99bool red (int keep ,int k ,int pl ,int number ,int table [pl ][number ],int arxikoCount [pl ],int uncoveredCount [pl ],int metabalomenoCount [pl ],int col_table [number ]);
1010bool yellow (int k ,int keep ,int pl ,int uncoveredCount [pl ],int metabalomenoCount [pl ],int number ,int col_table [number ]);
11+
1112//import data
1213int main (){
1314 int i ,j ,pl ,number ,ap ;
@@ -34,11 +35,11 @@ int main(){
3435 uncoveredCount [i ] = 0 ;
3536 }
3637 for (i = 0 ; i < number ; i ++ ){
38+ sum = 0 ;
3739 for (j = 0 ; j < pl ; j ++ ){
38- if (table [j ][i ] == 1 )sum = sum + 1 ;
40+ if (table [j ][i ] == 1 )sum ++ ;
3941 }
4042 col_table [i ] = sum ;
41- sum = 0 ;
4243 }
4344 for (i = 0 ; i < pl ; i ++ ){
4445 for (j = 0 ; j < number ; j ++ ){
@@ -84,41 +85,36 @@ int main(){
8485bool check (int pl ,int uncoveredCount [pl ]){
8586 int i ,count = 0 ;
8687 for (i = 0 ; i < pl ; i ++ ){
87- if (uncoveredCount [i ]> 0 )count ++ ;
88+ if (uncoveredCount [i ]> 0 )
89+ return true;
8890 }
89- if (count > 0 )return TRUE;
90- else return FALSE;
91+ return false;
9192}
9293
9394void afairesi (int a ,int b ,int pl ,int number ,int table [pl ][number ],int arxikoCount [pl ],int uncoveredCount [pl ],int metabalomenoCount [pl ],int col_table [number ],int keep ){
9495 int k ,l ;
9596 for (k = 0 ; k < number ; k ++ ){
96- if (table [keep ][k ] == 1 && !(red (keep ,k ,pl ,number ,table ,arxikoCount ,uncoveredCount ,metabalomenoCount ,col_table ))){
97- for (l = a ; l < b ; l ++ ){
98- if (table [l ][k ] == 1 ){
99- uncoveredCount [l ]-- ;
100- }
97+ if (table [keep ][k ] == 1 && !(red (keep ,k ,pl ,number ,table ,arxikoCount ,uncoveredCount ,metabalomenoCount ,col_table ))){
98+ for (l = a ; l < b ; l ++ ){
99+ if (table [l ][k ] == 1 ){
100+ uncoveredCount [l ]-- ;
101101 }
102102 }
103+ }
103104 }
104105}
105106
106107bool red (int keep ,int k ,int pl ,int number ,int table [pl ][number ],int arxikoCount [pl ],int uncoveredCount [pl ],int metabalomenoCount [pl ],int col_table [number ]){
107- if (table [keep ][k ] == 1 && yellow (k ,keep ,pl ,uncoveredCount ,metabalomenoCount ,number ,col_table )){
108- return TRUE;
109- }
110- else return FALSE;
108+ return table [keep ][k ] == 1 && yellow (k ,keep ,pl ,uncoveredCount ,metabalomenoCount ,number ,col_table );
111109}
112110
113111bool yellow (int k ,int keep ,int pl ,int uncoveredCount [pl ],int metabalomenoCount [pl ],int number ,int col_table [number ]){
114112 if (metabalomenoCount [keep ] != uncoveredCount [keep ]){
115113 metabalomenoCount [keep ]-- ;
116- return TRUE;
117- }
118- else {
119- if (col_table [k ] == 1 )return TRUE;
120- return FALSE;
114+ return true;
121115 }
116+ else
117+ return col_table [k ] == 1 ;
122118}
123119
124120
0 commit comments