Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.company;
- import kotlin.Pair;
- import java.util.*;
- public class Problem {
- public static void main(String[] args){
- Scanner sc = new Scanner(System.in);
- int n = sc.nextInt();
- int[][] expenses = new int[n][2];
- for(int i=0; i < n; i++){
- expenses[i][0] = sc.nextInt();
- expenses[i][1] = sc.nextInt();
- }
- int result = minimiseExpenses(expenses, n);
- System.out.println(result);
- }
- public static int minimiseExpenses(int[][] expenses, int n) {
- ArrayList<Pair<Integer, Integer>> list = new ArrayList<>();
- for(int i=0; i < n; i++){
- list.add(i, new Pair<>(expenses[i][0] - expenses[i][1], i));
- }
- Collections.sort(list, new Comparator<Pair<Integer, Integer>>() {
- @Override
- public int compare(Pair<Integer, Integer> o1, Pair<Integer, Integer> o2) {
- return o1.getFirst() - o2.getFirst();
- }
- });
- int totalExpense = 0;
- for(int i=0; i < n/2; i++)
- totalExpense += expenses[list.get(i).getSecond()][0];
- for(int i=n/2; i < n; i++)
- totalExpense += expenses[list.get(i).getSecond()][1];
- return totalExpense;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement