Skip to content

Commit a17a0a6

Browse files
authored
Merge pull request #1 from teo-tsirpanis/master
Remove the Roberts' library dependency & tidy up the code a little
2 parents cc05833 + 8956a86 commit a17a0a6

1 file changed

Lines changed: 18 additions & 22 deletions

File tree

SetCoveringProblem.c

Lines changed: 18 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
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
77
void 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);
88
bool check(int pl,int uncoveredCount[pl]);
99
bool 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]);
1010
bool yellow(int k,int keep,int pl,int uncoveredCount[pl],int metabalomenoCount[pl],int number,int col_table[number]);
11+
1112
//import data
1213
int 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(){
8485
bool 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

9394
void 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

106107
bool 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

113111
bool 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

Comments
 (0)