Facebook
From Mungo Tamarin, 1 Year ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 111
  1. package com.company;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Collections;
  5. import java.util.Random;
  6. import java.util.Scanner;
  7.  
  8. public class Main {
  9.  
  10.     private static int LowestCost(ArrayList<Integer> xx, ArrayList<Integer> yy) {
  11.         int i = 0, j = 0;
  12.         int sum = 0, temp = 0, temp2 = 0;
  13.         int counterofpiecesX = 1, counterofpiecesY = 1;
  14.  
  15.         while (i < yy.size() && j < xx.size()) {
  16.  
  17.             if (xx.get(j) > yy.get(i)) {
  18.                 sum += xx.get(j)*counterofpiecesY;
  19.                 j++;
  20.                 counterofpiecesX++;
  21.             }
  22.             else if (xx.get(j) < yy.get(i)) {
  23.                 sum += yy.get(i)*counterofpiecesX;
  24.                 i++;
  25.                 counterofpiecesY++;
  26.             }
  27.             else if (yy.get(i).equals(xx.get(j))) {
  28.  
  29.                 if (counterofpiecesX > counterofpiecesY) {
  30.                     sum += xx.get(j)*counterofpiecesY;
  31.                     j++;
  32.                     counterofpiecesX++;
  33.                 }
  34.                 if (counterofpiecesX <= counterofpiecesY) {
  35.                     sum += yy.get(i)*counterofpiecesX;
  36.                     i++;
  37.                     counterofpiecesY++;
  38.                 }
  39.             }
  40.  
  41.             if ((i == yy.size()) && (j != xx.size())) {
  42.                 sum += xx.get(j)*counterofpiecesY;
  43.                 j++;
  44.                 counterofpiecesX++;
  45.             }
  46.  
  47.             if ((j == xx.size()) && (i != yy.size())) {
  48.                 sum += yy.get(i)*counterofpiecesX;
  49.                 i++;
  50.                 counterofpiecesY++;
  51.             }
  52.         }
  53.  
  54.         return sum;
  55.     }
  56.  
  57.     public static int QS(ArrayList<Integer> tablica, int begin, int end) {
  58.         int i, j, v, temp;
  59.  
  60.         i = begin;
  61.         j = end;
  62.         v = tablica.get((begin + end)/2);
  63.         int counter = 0;
  64.  
  65.         do {
  66.             while (tablica.get(i) < v) {
  67.                 counter++;
  68.                 i++;
  69.             }
  70.             counter++;
  71.  
  72.             while (v < tablica.get(j)) {
  73.                 counter++;
  74.                 j--;
  75.             }
  76.             counter++;
  77.  
  78.             if (i <= j) {
  79.                 temp = tablica.get(i);
  80.                 tablica.set(i, tablica.get(j));
  81.                 tablica.set(j, temp);
  82.                 i++;
  83.                 j--;
  84.             }
  85.         }
  86.         while (i <= j);
  87.  
  88.         if (begin < j) QS(tablica, begin, j);
  89.         if (i < end) QS(tablica, i, end);
  90.  
  91.         return counter;
  92.     }
  93.  
  94.  
  95.     public static void main(String[] args) {
  96.  
  97.     ArrayList<Integer> arrayX= new ArrayList<>();
  98.     ArrayList<Integer> arrayY = new ArrayList<>();
  99.  
  100.     Scanner cin = new Scanner(System.in);
  101.     Random rand = new Random();
  102.  
  103.         System.out.print("Podaj x: ");
  104.         int x = cin.nextInt();
  105.         System.out.print("Podaj y: ");
  106.         int y = cin.nextInt();
  107.  
  108.         System.out.println("WartoĹ›ci X");
  109.         for(int i = 0; i < x-1; i++){
  110.             int value = cin.nextInt();
  111.             arrayX.add(value);
  112.         }
  113.         System.out.println("WartoĹ›ci Y");
  114.         for(int i = 0; i < y-1; i++){
  115.             int value = cin.nextInt();
  116.             arrayY.add(value);
  117.         }
  118.  
  119.         QS(arrayX,0,x-2);
  120.         Collections.reverse(arrayX);
  121.         QS(arrayY,0,y-2);
  122.         Collections.reverse(arrayY);
  123.  
  124.         System.out.println("Koszta X:" + x);
  125.         for(int check : arrayX){
  126.             System.out.print(check + " ");
  127.         }
  128.  
  129.         System.out.println("\nKoszta Y:" + y);
  130.         for(int check : arrayY){
  131.             System.out.print(check + " ");
  132.         }
  133.  
  134.  
  135.         int total = LowestCost(arrayX,arrayY);
  136.         System.out.println("Koszt = " + total);
  137.  
  138.     }
  139. }