import java.util.Arrays; import java.util.Scanner; // based on philipp kindermann's solution public class z { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int numCompetitors = scan.nextInt() - 1; long julia = scan.nextLong(); long[] scores = new long[numCompetitors]; for (int i = 0; i < numCompetitors; i++) { scores[i] = julia - scan.nextLong(); } Arrays.sort(scores); long distance = scores[0]; // anzahl teilnehmer mit hoechster punktzahl int closest = 0; while ((closest < numCompetitors) && (scores[closest] == distance)) { closest++; } long it = 0; while (distance >= 0) { long closestLog = Math.round(Math.floor(Math.log(closest) / Math.log(2))); if (closest == numCompetitors) { // alle sind gleich nah. // wie viele superrunden? // long superRounds = ?? // it = ?? // distance = ?? } else { // es gibt keine fast-naehesten: // scores[closest] - distance - it abstand zur naechsten gruppe // -> mache so viele superrunden // long superRounds = ?? // erreichen wir waehrenddessen das ende? if (?? < 0) { // wie viele superrunden brauchen wir dann noch? // superRounds = ?? // it = ?? // distance = ?? } else { // "normaler" Fall // distance = ?? // it = ?? // merge mit naechster gruppe while ((closest < numCompetitors) && (scores[closest] <= distance + it)) { closest++; } } } } System.out.print(it - 1); } }