package chelper; import java.util.SortedSet; import java.util.TreeSet; import io.InputReader; import io.OutputWriter; import misc.SimpleSavingChelperSolution; public class TaskB2 extends SimpleSavingChelperSolution { public void solve(int testNumber, InputReader in, OutputWriter out) { wrapSolve(testNumber, in, out); } @Override public void solve(int testNumber) { int l = in.nextInt(); SortedSet team = new TreeSet<>(); for (int i = 0; i < l; i++) { long count = in.nextLong(); int exp = in.nextInt(); team.add(new Pair(count, exp)); } long leftovers = 0; for (Pair manager : team) { long capacity = manager.count * manager.experience; long canAttach = Math.min(leftovers, capacity); leftovers = manager.count + leftovers - canAttach; } int maxExp = team.last().experience; out.println(Math.max(leftovers, maxExp + 1)); } class Pair implements Comparable { long count; int experience; public Pair(long count, int experience) { this.count = count; this.experience = experience; } @Override public int compareTo(Pair o) { return Integer.compare(this.experience, o.experience); } } }