11#include <stdio.h>
22#include "genlib.h"
33#include "simpio.h"
4-
4+ //afairese = remove
5+ // red checks if universe is already in resault
6+ // yellow checks if universe is already traversed
57void 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 );
68bool check (int pl ,int uncoveredCount [pl ]);
79bool 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 ]);
810bool yellow (int k ,int keep ,int pl ,int uncoveredCount [pl ],int metabalomenoCount [pl ],int number ,int col_table [number ]);
9-
11+ //import data
1012int main (){
1113 int i ,j ,pl ,number ,ap ;
12- printf ("Dose sinoliko plithos atomon: " );
14+ printf ("Give max sets(eg people) " );
1315 scanf ("%d" ,& pl );
14- printf ("Dose sinolikes glosses programmatismou: " );
16+ printf ("Give max universes(eg skills) " );
1517 scanf ("%d" ,& number );
1618 int table [pl ][number ];
1719 for (i = 0 ; i < pl ; i ++ ){
1820 for (j = 0 ; j < number ; j ++ ){
19- printf ("o %d kserei tin glossa programmatismou %d: 0 OXI ,1 NAI : " ,i + 1 ,j + 1 );
21+ printf ("person %d knows skill %d: 0 NO ,1 YES : " ,i + 1 ,j + 1 );
2022 scanf ("%d" ,& ap );
2123 table [i ][j ] = ap ;
2224 }
@@ -47,10 +49,13 @@ int main(){
4749 arxikoCount [i ] = uncoveredCount [i ];
4850 metabalomenoCount [i ] = uncoveredCount [i ];
4951 }
52+
53+ //code starts here
5054 int keep ;
5155 int max ,l ;
5256 int m = 0 ;
5357 while (check (pl ,uncoveredCount )){
58+ //finds max number of skills in one set
5459 max = uncoveredCount [0 ];
5560 keep = 0 ;
5661 for (j = 1 ; j < pl ; j ++ ){
@@ -61,13 +66,15 @@ int main(){
6166 }
6267 resaultCover [m ] = keep ;
6368 m ++ ;
69+ //removes this universe from other sets
6470 afairesi (0 ,keep ,pl ,number ,table ,arxikoCount ,uncoveredCount ,metabalomenoCount ,col_table ,keep );
6571 afairesi (keep + 1 ,pl ,pl ,number ,table ,arxikoCount ,uncoveredCount ,metabalomenoCount ,col_table ,keep );
6672 uncoveredCount [keep ] = -100 ;
6773 for (l = 0 ; l < pl ; l ++ ){
6874 metabalomenoCount [l ] = arxikoCount [l ];
6975 }
7076 }
77+ //print results
7178 for (i = 0 ; i < m ; i ++ ){
7279 printf ("Accepted: %d\n" ,resaultCover [i ]+ 1 );
7380 }
0 commit comments