package com.raylew.algorithm.book1; import java.util.ArrayList; import java.util.Collections; import java.util.Scanner; public class 突击战 { static class Data implements Comparable { int x, y; public Data(int i, int j) { x = i; y = j; } public int compareTo(Object o) { Data d = (Data) o; return d.y - y; } } public static void main(String[] args) { Scanner scan = new Scanner(System.in); int m = scan.nextInt(); ArrayList<Data> list = new ArrayList<Data>(); for (int i = 0; i < m; i++) { int x = scan.nextInt(); int y = scan.nextInt(); Data d = new Data(x, y); list.add(d); } Collections.sort(list); int t1 = 0, t2 = 0; for (int i = 0; i < list.size(); i++) { Data d = list.get(i); if (i == 0) { t1 = d.x; t2 = d.y + t1; continue; } if (t1 + d.x + d.y < t2) { t1 += d.x; } else { t1 += d.x; t2 = d.y + t1; } } System.out.println(t2); } }