miejsce([wincenty,W,dymitr,D,andrzej,A,borys,B,grzegorz,G]) :-

  L0 = [1,2,3,4,5],

  G = 3,     /* grzegorz zajal trzecie miejsce */

  select(W, L0, L1), W \= 1,
             /* wincenty nie zajal pierwszego miejsca */

  select(D, L1, L2), D \= 2,
             /* dymitr nie zajal drugiego, ani tego co wincenty */

  select(A, L2, L3), A \= 1, A \= 5,
             /* andrzej nie zajal pierwszego ani piatego, 
            ani tego co wincenty lub dymitr*/

  select(B, L3, [G]),      
             /* pozostale miejsca zajeli borys i grzegorz */

  B is W+1,  /* borys przybiegl zaraz za wincentym */
  G > D.     /* dymitr byl na mecie wczesniej niz grzegorz */
-? miejsce (wincenty)