Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //calculate maximum summation for the nth category
- public int calc(int n, int mask){
- if(visited[mask]) return val[mask];
- val[mask] = 0;
- int _mask = mask;
- for(int i = 12, j = 0; i >= 0; i--, j++){
- int temp = mask & (1<<i);
- if(temp != 0){
- _mask = mask ^ (1<<i);
- int c = calc(n-1,_mask),
- e = rolls[j].categoryPoints[n-1],
- m = c + e;
- visited[mask] = true;
- if (m > val[mask]){
- val[mask] = m;
- edges[mask] = new Edge(n-1,e);
- top[mask] = _mask;
- }
- }
- }
- if(n == 6 && val[mask] > 62){
- val[mask] += 35;
- }
- return val[mask];
- }
Add Comment
Please, Sign In to add comment