Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- i) find minimum k using binary search
- ii) make k lists (packets)
- iii) call the function above passing (n, s, k, 0, packets)
- solve(n, s, k, pos, packets):
- if (|s| == k):
- return s;
- for i = 1 to |s|:
- s' = s - s[0]
- s' = s' - s[i]
- s' = s' U (s[0]+s[i])
- if (FP(n,s',k)):
- packets[pos].append(s[0],s[i])
- return solve(n, s',k,pos,packets)
- swap(s[0],s[|s|-1])
- return solve(n,s,k,pos+1,packets)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement