Lindo Systems

SETS:
   DAYS /1..7/: COST, NEEDS, START;
ENDSETS

DATA:
   COST, NEEDS = @OLE( 'C:\LINGO5\SAMPLES\STAFFOLE.XLS');
   @OLE( 'C:\LINGO5\SAMPLES\STAFFOLE.XLS') = START;
ENDDATA

[OBJECTIVE] MIN = @SUM( DAYS: COST * START);

@FOR( DAYS( D): [COVERAGE] 
 @SUM( DAYS( I) | I #LE# 5: 
  START(  @WRAP( D - I + 1, @SIZE( DAYS))))
   >= NEEDS( D)
);

@FOR( DAYS: @GIN( START));