using CP;


 
dvar interval A	size 2;
dvar interval B	size 3;
dvar interval C	size 5;
dvar interval D	size 4;
dvar interval E	size 5;
dvar interval F	size 3;
dvar interval G	size 4;
dvar interval H	size 1;


subject to {

  endBeforeStart( A , B );  
  endBeforeStart( B , C );
  startBeforeEnd( C , A , -4 );
  startBeforeStart(A,C,1);  
  endBeforeStart(B,D,1);  
  startBeforeStart(C,D,5);
  startBeforeStart(D,C,-6);
  endBeforeEnd(G,C,-5);
  startAtStart(G,E,3);
  endBeforeStart( D , E );
  startBeforeEnd(E,D,-4);
  startBeforeStart(D,F);
  endBeforeEnd(F,D);
  startBeforeStart(E,H,9);
}



execute {
  writeln("A  : " + A.start  + ".." + A.end);  
  writeln("B : " + B.start + ".." + B.end);
  writeln("C : " + C.start  + ".." + C.end);
  writeln("D  : " + D.start   + ".." + D.end);
  writeln("E  : " + E.start   + ".." + E.end);
  writeln("F : " + F.start  + ".." + F.end);
  writeln("G  : " + G.start   + ".." + G.end);
  writeln("H   : " + H.start    + ".." + H.end);
  }
  
  
  