public class Election { private int N, yes, no; private boolean result; public Election (int N) { this.N = N; yes = 0; no = 0; } public synchronized boolean Election (boolean voteYes) { if (voteYes) yes++; else no++; if (2*yes > N) result = true; else if (2*no > N) result = false; else try { wait(); } catch (java.lang.InterruptedException e) { }; notifyAll(); return result; } }