public class Euler2 {
    static long solve(long limit) {
        long a = 1, b = 2, sum = 0;
        while (b <= limit) {
            if (b % 2 == 0)
                sum += b;
            long next = a + b;
            a = b;
            b = next;
        }
        return sum;
    }

    public static void main(String[] args) {
        assert solve(100) == 44 : "Checkpoint failed for limit=100";
        System.out.println(solve(4000000));
    }
}
