git reimport
This commit is contained in:
50
archive/2018.09/2018.09.18 - unsorted/Task2.java
Normal file
50
archive/2018.09/2018.09.18 - unsorted/Task2.java
Normal file
@@ -0,0 +1,50 @@
|
||||
package chelper;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import io.InputReader;
|
||||
import io.OutputWriter;
|
||||
import misc.SimpleSavingChelperSolution;
|
||||
|
||||
|
||||
public class Task2 extends SimpleSavingChelperSolution {
|
||||
|
||||
public void solve(int testNumber, InputReader in, OutputWriter out) {
|
||||
wrapSolve(testNumber, in, out);
|
||||
}
|
||||
|
||||
List<Integer> piramidSizes = new ArrayList<>();
|
||||
int max = 300_001;
|
||||
int[] dp = new int[max];
|
||||
|
||||
{
|
||||
piramidSizes.add(0);
|
||||
for (int i = 1; true; i++) {
|
||||
piramidSizes.add(piramidSizes.get(i - 1) + (1 + i) * i / 2);
|
||||
if (piramidSizes.get(i) >= max) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Arrays.fill(dp, max);
|
||||
dp[0] = 0;
|
||||
for (int i = 1; i < max; i++) {
|
||||
for (int j : piramidSizes) {
|
||||
if (j > i) {
|
||||
break;
|
||||
}
|
||||
dp[i] = Math.min(dp[i], dp[i - j] + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void solve(int testNumber) {
|
||||
|
||||
int x = in.nextInt();
|
||||
out.println(dp[x]);
|
||||
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user