Advertisement
Josif_tepe

Untitled

May 11th, 2022
842
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.66 KB | None | 0 0
  1. import java.util.Collection;
  2. import java.util.Arrays;
  3. import java.util.Scanner;
  4.  
  5. public class MAin {
  6.     public static void main(String[] args) {
  7.         Scanner sc = new Scanner(System.in);
  8.         int n = sc.nextInt();
  9.         Item[] niza = new Item[n];
  10.         for(int i = 0; i < n; i++) {
  11.             double w = sc.nextDouble();
  12.             double v = sc.nextDouble();
  13.             niza[i] = new Item(w, v);
  14.         }
  15.         for(int i = 0; i < n; i++) {
  16.             for(int j = i + 1; j < n; j++) {
  17.                 if(niza[i].razmer < niza[j].razmer) {
  18.                     Item tmp = niza[i];
  19.                     niza[i] = niza[j];
  20.                     niza[j] = tmp;
  21.                 }
  22.             }
  23.         }
  24.         double capacity = sc.nextDouble();
  25.         double totalValue = 0;
  26.         for(int i = 0; i < n; i++) {
  27.             if(capacity - niza[i].weight >= 0) {
  28.                 totalValue += niza[i].value;
  29.                 capacity -= niza[i].weight;
  30.             }
  31.             else {
  32.                 double del = capacity / niza[i].weight;
  33.                 totalValue += (del * niza[i].value);
  34.                 capacity -= (del * niza[i].weight);
  35.             }
  36.         }
  37.         for(int i = 0; i < n; i++) {
  38.             System.out.println(niza[i].weight + " " + niza[i].value + " " + niza[i].razmer);
  39.         }
  40.         System.out.println(totalValue);
  41.     }
  42.     static class Item {
  43.         double weight, value;
  44.         double razmer;
  45.         Item(double weight, double value) {
  46.             this.weight = weight;
  47.             this.value = value;
  48.             razmer = value / weight;
  49.  
  50.         }
  51.     }
  52. }
  53. // 50- 10 - 20 = 20
  54. // 60 + 100 +
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement