public void unseat(int type) {
        boolean unseatInParent = true;
        int[] tsa = tableMap.get(type);
        double random = RNG.nextDouble();
        int tc = 0;
        int ind = -1;
        double cuSum = 0.0D;

        for (int tableSize : tsa) {
            tc += tableSize;
        }

        for (int i = 0; i < tsa.length; i++) {
            cuSum += (double) tsa[i] / tc;
            if (cuSum > random) {
                tsa[i] -= 1;
                ind = i;
                break;
            }
        }

        if (ind == -1) {
            System.out.println("hm");
        }

        if (tsa[ind] == 0) {
            if (tsa.length == 1) {
                tableMap.remove(type);
            } else {
                int[] nSeatingArrangement = new int[tsa.length - 1];
                System.arraycopy(tsa, 0, nSeatingArrangement, 0, ind);
                System.arraycopy(tsa, ind + 1, nSeatingArrangement, ind, tsa.length - 1 - ind);
                tableMap.put(type, nSeatingArrangement);
            }
        } else {
            unseatInParent = false;
        }

        this.customers -= 1;
        if (unseatInParent) {
            tables -= 1;
            parent.unseat(type);
        }
    }