Submission #303268

# Submission time Handle Problem Language Result Execution time Memory
303268 2020-09-20T06:51:12 Z model_code Packing Biscuits (IOI20_biscuits) Java 11
100 / 100
926 ms 71120 KB
// biscuits-yanhao-ac
import java.util.HashMap;

class biscuits {
	HashMap<Long, Long> m = new HashMap<>();
	long f(long[] s, long x, long n) {
		if(n<=0) return 0;
		if(n==1) return 1;
		if(m.containsKey(n)) {
			return m.get(n);
		}
		int a = 63-Long.numberOfLeadingZeros(n-1);
		long b = ((long)1)<<a;
		long c = Math.min(n,1+s[a]/x) - b;
		long ans = f(s,x,b) + f(s,x,c);
		m.put(n, f(s,x,b) + f(s,x,c));
		return ans;
	}
	long count_tastiness(long x, long[] a) {
		m = new HashMap<>();
		long[] b = new long[61];
		for(int i=0; i<a.length; i++) {
			b[i] = a[i];
		}
		for(int i=1; i<a.length; i++) {
			b[i] = b[i-1] + (b[i]<<i);
		}
		for(int i=a.length; i<=60; i++) {
			b[i] = b[i-1];
		}
		return f(b, x, 1+b[60]);
	}
}
# Verdict Execution time Memory Grader output
1 Correct 87 ms 10344 KB Output is correct
2 Correct 83 ms 10360 KB Output is correct
3 Correct 87 ms 10472 KB Output is correct
4 Correct 85 ms 10472 KB Output is correct
5 Correct 86 ms 10488 KB Output is correct
6 Correct 87 ms 10332 KB Output is correct
7 Correct 90 ms 10612 KB Output is correct
8 Correct 87 ms 10376 KB Output is correct
9 Correct 83 ms 10232 KB Output is correct
10 Correct 84 ms 10484 KB Output is correct
11 Correct 83 ms 10472 KB Output is correct
12 Correct 90 ms 10488 KB Output is correct
13 Correct 90 ms 10356 KB Output is correct
14 Correct 88 ms 10472 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 86 ms 10436 KB Output is correct
2 Correct 98 ms 10876 KB Output is correct
3 Correct 108 ms 11200 KB Output is correct
4 Correct 104 ms 11168 KB Output is correct
5 Correct 111 ms 11116 KB Output is correct
6 Correct 114 ms 11248 KB Output is correct
7 Correct 104 ms 11020 KB Output is correct
8 Correct 106 ms 11640 KB Output is correct
9 Correct 107 ms 11120 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 101 ms 10756 KB Output is correct
2 Correct 92 ms 10740 KB Output is correct
3 Correct 99 ms 10744 KB Output is correct
4 Correct 100 ms 11124 KB Output is correct
5 Correct 108 ms 11148 KB Output is correct
6 Correct 105 ms 11496 KB Output is correct
7 Correct 104 ms 10820 KB Output is correct
8 Correct 101 ms 11004 KB Output is correct
9 Correct 95 ms 10564 KB Output is correct
10 Correct 118 ms 11940 KB Output is correct
11 Correct 140 ms 14780 KB Output is correct
12 Correct 156 ms 16392 KB Output is correct
13 Correct 122 ms 12272 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 336 ms 32296 KB Output is correct
2 Correct 554 ms 52608 KB Output is correct
3 Correct 444 ms 50516 KB Output is correct
4 Correct 484 ms 51888 KB Output is correct
5 Correct 519 ms 50552 KB Output is correct
6 Correct 544 ms 54456 KB Output is correct
7 Correct 505 ms 56040 KB Output is correct
8 Correct 639 ms 54276 KB Output is correct
9 Correct 638 ms 56168 KB Output is correct
10 Correct 456 ms 47932 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 87 ms 10344 KB Output is correct
2 Correct 83 ms 10360 KB Output is correct
3 Correct 87 ms 10472 KB Output is correct
4 Correct 85 ms 10472 KB Output is correct
5 Correct 86 ms 10488 KB Output is correct
6 Correct 87 ms 10332 KB Output is correct
7 Correct 90 ms 10612 KB Output is correct
8 Correct 87 ms 10376 KB Output is correct
9 Correct 83 ms 10232 KB Output is correct
10 Correct 84 ms 10484 KB Output is correct
11 Correct 83 ms 10472 KB Output is correct
12 Correct 90 ms 10488 KB Output is correct
13 Correct 90 ms 10356 KB Output is correct
14 Correct 88 ms 10472 KB Output is correct
15 Correct 86 ms 10436 KB Output is correct
16 Correct 98 ms 10876 KB Output is correct
17 Correct 108 ms 11200 KB Output is correct
18 Correct 104 ms 11168 KB Output is correct
19 Correct 111 ms 11116 KB Output is correct
20 Correct 114 ms 11248 KB Output is correct
21 Correct 104 ms 11020 KB Output is correct
22 Correct 106 ms 11640 KB Output is correct
23 Correct 107 ms 11120 KB Output is correct
24 Correct 101 ms 10756 KB Output is correct
25 Correct 92 ms 10740 KB Output is correct
26 Correct 99 ms 10744 KB Output is correct
27 Correct 100 ms 11124 KB Output is correct
28 Correct 108 ms 11148 KB Output is correct
29 Correct 105 ms 11496 KB Output is correct
30 Correct 104 ms 10820 KB Output is correct
31 Correct 101 ms 11004 KB Output is correct
32 Correct 95 ms 10564 KB Output is correct
33 Correct 118 ms 11940 KB Output is correct
34 Correct 140 ms 14780 KB Output is correct
35 Correct 156 ms 16392 KB Output is correct
36 Correct 122 ms 12272 KB Output is correct
37 Correct 336 ms 32296 KB Output is correct
38 Correct 554 ms 52608 KB Output is correct
39 Correct 444 ms 50516 KB Output is correct
40 Correct 484 ms 51888 KB Output is correct
41 Correct 519 ms 50552 KB Output is correct
42 Correct 544 ms 54456 KB Output is correct
43 Correct 505 ms 56040 KB Output is correct
44 Correct 639 ms 54276 KB Output is correct
45 Correct 638 ms 56168 KB Output is correct
46 Correct 456 ms 47932 KB Output is correct
47 Correct 394 ms 42580 KB Output is correct
48 Correct 620 ms 57316 KB Output is correct
49 Correct 416 ms 45940 KB Output is correct
50 Correct 501 ms 54448 KB Output is correct
51 Correct 392 ms 36088 KB Output is correct
52 Correct 403 ms 33436 KB Output is correct
53 Correct 354 ms 37728 KB Output is correct
54 Correct 833 ms 67052 KB Output is correct
55 Correct 926 ms 64484 KB Output is correct
56 Correct 788 ms 66608 KB Output is correct
57 Correct 805 ms 71120 KB Output is correct