import numpy as np


n = 51 # aktivitas
A = list(range(0, n + 1 + 1))
K = [4]
R = len(K)
b = (0, 0, 0, 0)
e = (220, 220, 220, 235)

data_durasi = [(5,6,6,7),
               (10,12,12,13),
               (4,5,5,6),
               (7,8,8,10),
               (2,4,4,6),
               (3,4,4,5),
               (2,3,3,4),
               (2,3,3,5),
               (3,4,4,6),
               (4,5,5,6), #10
               (7,9,9,10),
               (3,4,4,5),
               (1,2,2,3),
               (1,2,2,3),
               (1,2,2,2),
               (3,4,4,5),
               (4,5,5,6),
               (4,5,5,6),
               (5,6,6,7),
               (5,7,7,9), #20
               (3,5,5,7),
               (4,5,5,6),
               (1,2,2,3),
               (8,10,10,12),
               (4,5,5,6),
               (4,6,6,8),
               (6,7,7,8),
               (10,12,12,14),
               (1,2,2,4),
               (9,11,11,13), #30
               (10,13,13,14),
               (8,10,10,11),
               (6,8,8,9),
               (3,4,4,5),
               (3,4,4,5),
               (1,3,3,4),
               (3,4,4,5),
               (1,2,2,3),
               (2,3,3,4),
               (1,1,1,2), #40
               (3,4,4,5),
               (1,2,2,3),
               (1,2,2,3),
               (3,4,4,5),
               (4,5,5,6),
               (4,5,5,6),
               (3,4,4,5),
               (5,7,7,8),
               (6,8,8,10),
               (2,3,3,5),#50
               (2,4,4,7)]
S = {1: [2],
     2: [3,4],
     3: [5],
     4: [5],
     5: [6],
     6: [7],
     7: [8,9,10,12],
     8: [13],
     9: [14],
     10: [11],
     11: [15],
     12: [15],
     13: [15],
     14: [15],
     15: [16],
     16: [17,18],
     17: [19],
     18: [19],
     19: [20,21,22],
     20: [23],
     21: [23],
     22: [23],
     23: [24],
     24: [25,26,27],
     25: [29],
     26: [28],
     27: [29],
     28: [29],
     29: [30,31,32,38,39,41],
     30: [33],
     31: [36],
     32: [37],
     33: [34],
     34: [35],
     35: [40],
     36: [40],
     37: [40],
     38: [40],
     39: [40],
     40: [44,45,48],
     41: [42],
     42: [43],
     43: [44,45],
     44: [51],
     45: [46],
     46: [47],
     47: [51],
     48: [49],
     49: [50],
     50: [51],
     51: [52]
     }

kebutuhan = {1: [3,0,0,0],
             2: [5,3,3,2],
             3: [4,2,4,2],
             4: [4,2,2,2],
             5: [5,0,0,0],
             6: [4,2,2,2],
             7: [4,3,3,2],
             8: [0,4,2,0],
             9: [2,1,5,3],
             10: [4,0,0,0],
             11: [5,0,0,0],
             12: [3,0,0,1],
             13: [3,2,0,1],
             14: [3,0,3,2],
             15: [4,2,2,2],
             16: [5,2,2,0],
             17: [5,2,4,2],
             18: [4,2,4,3],
             19: [5,2,3,4],
             20: [4,0,0,0],
             21: [5,1,4,4],
             22: [0,3,0,0],
             23: [5,1,1,1],
             24: [2,1,5,3],
             25: [2,1,5,3],
             26: [0,0,4,3],
             27: [0,4,0,2],
             28: [2,2,4,4],
             29: [4,2,2,2],
             30: [4,2,3,0],
             31: [5,0,3,2],
             32: [0,0,4,2],
             33: [4,3,2,0],
             34: [4,2,3,3],
             35: [2,2,0,4],
             36: [0,0,2,0],
             37: [0,0,2,2],
             38: [1,0,3,1],
             39: [0,0,2,2],
             40: [4,0,4,3],
             41: [0,4,0,0],
             42: [3,3,0,0],
             43: [3,0,3,0],
             44: [2,3,4,1],
             45: [2,2,4,2],
             46: [5,2,2,3],
             47: [2,0,4,2],
             48: [2,0,2,3],
             49: [4,2,3,2],
             50: [4,2,3,3],
             51: [4,2,2,3]}

key = list(S.keys())
precedence = np.zeros((len(A), len(A))).astype(np.int8)

F = [0]
P = []
si = fi = (0, 0, 0, 0)
s0 = f0 = b
RSk = {1:5,
       2:4,
       3:5,
       4:4}
