Advertisement
saurav_kalsoor

Minimise Expenses - JAVA

Sep 26th, 2021
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.28 KB | None | 0 0
  1. package com.company;
  2. import kotlin.Pair;
  3.  
  4. import java.util.*;
  5.  
  6.  
  7. public class Problem {
  8.  
  9.     public static void main(String[] args){
  10.         Scanner sc = new Scanner(System.in);
  11.         int n = sc.nextInt();
  12.         int[][] expenses = new int[n][2];
  13.  
  14.         for(int i=0; i < n; i++){
  15.             expenses[i][0] = sc.nextInt();
  16.             expenses[i][1] = sc.nextInt();
  17.         }
  18.         int result = minimiseExpenses(expenses, n);
  19.         System.out.println(result);
  20.     }
  21.  
  22.  
  23.     public static int minimiseExpenses(int[][] expenses, int n) {
  24.         ArrayList<Pair<Integer, Integer>> list = new ArrayList<>();
  25.  
  26.         for(int i=0; i < n; i++){
  27.             list.add(i, new Pair<>(expenses[i][0] - expenses[i][1], i));
  28.         }
  29.  
  30.         Collections.sort(list, new Comparator<Pair<Integer, Integer>>() {
  31.             @Override
  32.             public int compare(Pair<Integer, Integer> o1, Pair<Integer, Integer> o2) {
  33.                 return o1.getFirst() - o2.getFirst();
  34.             }
  35.         });
  36.  
  37.         int totalExpense = 0;
  38.         for(int i=0; i < n/2; i++)
  39.             totalExpense += expenses[list.get(i).getSecond()][0];
  40.  
  41.         for(int i=n/2; i < n; i++)
  42.             totalExpense += expenses[list.get(i).getSecond()][1];
  43.  
  44.  
  45.         return totalExpense;
  46.  
  47.     }
  48. }
  49.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement