Untitled
user_0781376
plain_text
11 days ago
1.4 kB
1
Indexable
import java.util.*; class Main { private int n; private TreeSet<Integer> seats; public Main(int n) { this.n = n; this.seats = new TreeSet<>(); } public int seat() { int seat = 0; if (!seats.isEmpty()) { int maxDist = seats.first(); // Distance from 0 to first occupied seat Integer prev = null; for (int curr : seats) { if (prev != null) { int dist = (curr - prev) / 2; if (dist > maxDist) { maxDist = dist; seat = prev + dist; } } prev = curr; } // Check distance from last seat to n-1 if (n - 1 - seats.last() > maxDist) { seat = n - 1; } } seats.add(seat); return seat; } public void leave(int p) { seats.remove(p); } public static void main(String[] args) { Main examRoom = new Main(10); System.out.println(examRoom.seat()); // 0 System.out.println(examRoom.seat()); // 9 System.out.println(examRoom.seat()); // 4 System.out.println(examRoom.seat()); // 2 examRoom.leave(4); System.out.println(examRoom.seat()); // 5 } }
Editor is loading...
Leave a Comment