ziobrowskyy

asd

Dec 2nd, 2019
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.04 KB | None | 0 0
  1. import java.io.*;
  2. import java.util.ArrayList;
  3. import java.util.Arrays;
  4.  
  5. public class Main {
  6.     public static void main(String[] args) {
  7. //        task3();
  8. //        System.out.println("Starting...");
  9.         long startTime = System.nanoTime();
  10.         task4();
  11.         long endTime = System.nanoTime();
  12.         System.out.println(String.format("It took %.3f ms to compute", (float)(endTime-startTime)/1000000));
  13. //        task2();
  14.     }
  15.     static void task4() {
  16.         String line = openFile(new File("res/input3.txt"))[0];
  17.         int[] arr = Arrays.stream(line.split(",")).mapToInt(Integer::parseInt).toArray();
  18.         int goal = 19690720;
  19.         mainLoop:
  20.         for(int i = 0; i <= 99; i++)
  21.             for(int j = 0; j <= 99; j++) {
  22.                 int[] a = Arrays.copyOf(arr, arr.length);
  23.                 a[1] = i;
  24.                 a[2] = j;
  25.                 iterLoop:
  26.                 for (int k = 0; k < arr.length; k+=4) {
  27.                     int v = arr[k];
  28.                     switch (v) {
  29.                         case (1):
  30.                             a[a[k + 3]] = a[a[k + 1]] + a[a[k + 2]];
  31.                             break;
  32.                         case (2):
  33.                             a[a[k + 3]] = a[a[k + 1]] * a[a[k + 2]];
  34.                             break;
  35.                         case (99):
  36.                             break iterLoop;
  37.                     }
  38.                 }
  39. //                System.out.println(String.format("i: %d, j: %d; %d", i, j, a[0]));
  40.                 if(a[0] == goal) {
  41.                     System.out.println(100*i + j);
  42.                     break mainLoop;
  43.                 }
  44.             }
  45.     }
  46.     static void task3() {
  47.         String line = openFile(new File("res/input3.txt"))[0];
  48.         int[] arr = Arrays.stream(line.split(",")).mapToInt(Integer::parseInt).toArray();
  49.         arr[1] = 12;
  50.         arr[2] = 2;
  51.         System.out.println(Arrays.toString(arr));
  52.         mainloop:
  53.         for (int i = 0; i < arr.length; i+=4) {
  54.             int v = arr[i];
  55.             switch (v) {
  56.                 case (1):
  57.                     arr[arr[i + 3]] = arr[arr[i+1]] + arr[arr[i + 2]];
  58.                     break;
  59.                 case (2):
  60.                     arr[arr[i + 3]] = arr[arr[i + 1]] * arr[arr[i + 2]];
  61.                     break;
  62.                 case (99):
  63.                     break mainloop;
  64.             }
  65.         }
  66.         System.out.println(Arrays.toString(arr));
  67.         System.out.println("value is: " + arr[0]);
  68.  
  69.     }
  70.  
  71.     static void task2() {
  72.         String[] lines = openFile(new File("res/input2.txt"));
  73.         int sum = 0;
  74.         int additions = 0;
  75.         for(String line : lines) {
  76.             int mass = Integer.parseInt(line.trim());
  77.             int toAdd = calculateFuel(mass);
  78.             additions++;
  79.             while (toAdd != 0) {
  80.                 sum += toAdd;
  81.                 additions++;
  82.                 toAdd = calculateFuel(toAdd);
  83.             }
  84. //            break;
  85.         }
  86.         System.out.println(String.format("sum of %d [%d] elements eq: %d", lines.length, additions, sum));
  87.     }
  88.     static int calculateFuel(int mass) {
  89.         return Math.max(mass/3-2, 0);
  90.     }
  91.     static void task1() {
  92.         String[] lines = openFile(new File("res/input2.txt"));
  93.         int sum = 0;
  94.         for(String line : lines) {
  95.             int v = Integer.parseInt(line.trim());
  96.             int res = v/3 - 2;
  97.             sum += res;
  98.             System.out.println(res);
  99.         }
  100.         System.out.println(String.format("sum of %d elements eq: %d", lines.length, sum));
  101.     }
  102.     static String[] openFile (File file) {
  103.         ArrayList<String> lines = new ArrayList<>();
  104.         try (FileReader fr = new FileReader(file)){
  105.             BufferedReader br = new BufferedReader(fr);
  106.             String line;
  107.             while((line = br.readLine()) != null) {
  108.                 lines.add(line.strip());
  109.             }
  110.         } catch (IOException e) {
  111.             e.printStackTrace();
  112.         }
  113.         return lines.toArray(new String[0]);
  114.     }
  115. }
Advertisement
Add Comment
Please, Sign In to add comment