Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- import java.nio.file.Files;
- import java.nio.charset.StandardCharsets;
- import java.nio.file.Paths;
- import java.io.IOException;
- public class HelloWorld{
- public static void main(String []args){
- try{
- List<String> boxes = Files.readAllLines(Paths.get("input"), StandardCharsets.UTF_8);
- for(String b : boxes) {
- BoxList.add(new Box(b.split("x")));
- }
- } catch(IOException e){
- e.printStackTrace();
- }
- if(BoxList.size() > 0) {
- System.out.println("Paper needed: " + BoxList.totalPaperNeeded());
- System.out.println("Ribbon needed: " + BoxList.totalRibbonNeeded());
- }
- }
- }
- final class BoxList {
- static List<Box> boxList = new ArrayList<Box>();
- public static void add(Box box) {
- boxList.add(box);
- }
- public static Integer size() {
- return boxList.size();
- }
- public static Integer totalPaperNeeded() {
- Integer totalPaper = 0;
- for(Box b : boxList) {
- totalPaper += b.paperNeeded();
- }
- return totalPaper;
- }
- public static Integer totalRibbonNeeded() {
- Integer totalRibbon = 0;
- for(Box b : boxList) {
- totalRibbon += b.ribbonNeeded();
- }
- return totalRibbon;
- }
- }
- class Box {
- private Integer l, w, h;
- public Box(String[] dimensions) {
- this.l = Integer.parseInt(dimensions[0]);
- this.w = Integer.parseInt(dimensions[1]);
- this.h = Integer.parseInt(dimensions[2]);
- }
- public void render() {
- System.out.println("l: " + l + " w: " + w + " h: " + h);
- System.out.println("Paper needed: " + paperNeeded());
- System.out.println("Ribbon needed: " + ribbonNeeded());
- }
- public Integer paperNeeded() {
- Integer lw = l * w;
- Integer wh = w * h;
- Integer hl = h * l;
- return 2 * (lw + wh + hl) + findMin(lw, wh, hl);
- }
- public Integer ribbonNeeded() {
- Integer minPerim = 2 * findMin(l + w, w + h, h + l);
- return minPerim + (l * w * h);
- }
- private Integer findMin(Integer a, Integer b, Integer c) {
- return Math.min(a, Math.min(b, c));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement