public ArrayList<Long> productExcludeItself(ArrayList<Integer> A) {
        // write your code
        ArrayList<Long> res = new ArrayList<Long>();
        res.add(1l);
        for (int i = 1; i < A.size(); ++i) {
            res.add(A.get(i - 1) * res.get(i - 1));
        }
        long right = 1;
        for (int i = A.size() - 1; i >= 0; --i) {
            res.set(i, right * res.get(i));
            right *= A.get(i);
        }
        return res;
    }