Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //used this program solving http://puzzling.stackexchange.com/questions/22353/invitation-to-the-party
- import java.math.BigInteger;
- import java.util.HashMap;
- public class Main {
- static HashMap<Integer,BigInteger> cache = new HashMap<Integer, BigInteger>();
- public static void main(String[] args) {
- cache.put(1, BigInteger.ONE);
- cache.put(2, BigInteger.ONE);
- cache.put(3, BigInteger.valueOf(2l));
- cache.put(4, BigInteger.valueOf(3l));
- cache.put(5, BigInteger.valueOf(3l));
- cache.put(6, BigInteger.valueOf(5l));
- System.out.println(totalInvites(24));
- System.out.println(totalInvites(25));
- System.out.println(totalInvites(180));
- }
- public static BigInteger invites(int minutes) {
- if (!cache.containsKey(minutes)) {
- cache.put(minutes, invites(minutes - 1).add(invites(minutes - 3)).add(invites(minutes - 6)));
- }
- return cache.get(minutes);
- }
- public static BigInteger totalInvites(int minutes) {
- BigInteger result = BigInteger.ZERO;
- for (int i=1; i<=minutes;i++) {
- result = result.add(invites(i));
- }
- return result;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement