Το πρόβλημα μου άρεσε και το έλυσα.

οι κανόνες ((1,3),(7,4),(6,3),(3,2),(6,1),(4,7),(1,7),(4,6),(1,4),(3,7), (8,9),(7,8),(5,2),(10,3))
Στην εικόνα είναι η λύση για 10 άτομα από τα οποία βγάζουμε τέσσερα (μπορεί κανείς να το μεγαλώσει)
Πρέπει να έχει κανείς μια λίστα με κλειδί το καθένα άτομο που αναφέρεται στα ζεύγη πχ (1,3) θα υπάρχει και για 1 και 3, και σε κάθε κλειδί θα υπάρχει άλλη λίστα με όλα τα άτομα που εξαιρούνται.
Αρχικά ανακατεύουμε τη δομή με τα 10 (ή 500) νούμερα -κωδικούς υπαλλήλων- για να έχουμε μια εκ των λύσεων.
θέλει πέρασμα σε διπλή επανάληψη (η πρώτη από 1 έως 9 και η δεύτερη από +1 στο προηγούμενο έως 10 ). Απλά σε κάθε διπλή επανάληψη θα κοιτάμε αν υπάρχει το κλειδί στην λίστα, αν ναι τότε θα κοιτάμε αν το δεύτερο υπάρχει στην λίστα που γυρίζει το κλειδί, αν ναι τότε το δεύτερο το μηδενίζουμε (από το νούμερο που δείχνει τον υπάλληλο σε μηδέν). Στο τέλος έχουμε ένα πίνακα (ή ότι άλλη δομή) που περιέχει αριθμούς υπαλλήλων (κωδικούς) και μηδενικά. Βγάζουμε τα μηδενικά (στη περίπτωση εδώ έχουμε μια στοίβα) και μένουν μόνο οι αριθμοί. Διαλέγουμε τους πρώτους έστω 4 (ή 150 για το πρόβλημα με τους 500 υπαλλήλους).
Σε ΓΛΩΣΣΑ θα έπρεπε ο πίνακας κανόνων αντί σε λίστα με λίστες να γίνει σε 500Χ500 και να μπεί 1 αν ισχύει ή 0 αν όχι. Απλά τα κλειδιά απαραίτητα θα είναι αντίστοιχα με τους δείκτες (ενώ με την λίστα έχούμε ότι θέλουμε). Άρα ένας πίνακας 500 νούμερα με 1 οκ και αργότερα 0 (εκτός) και ένας δυο διαστάσεων 500Χ500