Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- for(int i = 0; i < N; i++)
- {
- int newminpos = minpos, newmaxpos = maxpos;
- int newpossible[OFFSET + OFFSET] = { 0 };
- for(int j = maxpos; j >= minpos; j--) // j = one possible sum
- {
- if (possible[j+OFFSET]) newpossible[j+nums[i]+OFFSET] = 1;
- if (j+nums[i] > newmaxpos) newmaxpos = j+nums[i];
- if (j+nums[i] < newminpos) newminpos = j+nums[i];
- }
- minpos = newminpos;
- maxpos = newmaxpos;
- for(int j = maxpos; j >= minpos; j--)
- if (newpossible[j+OFFSET] == 1)
- possible[j+OFFSET] = 1;
- if (nums[i] > maxpos) maxpos = nums[i];
- if (nums[i] < minpos) minpos = nums[i];
- possible[nums[i]+OFFSET] = 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement