Рассмотрим все возможные ситуации и утверждения. Петя утверждает, что не ел, и что Маша не ела. Если Петя говорит правду, то варенье ел Вася. Но Вася говорит, что "Маша не ела, а ел Петя", что является ложью. Маша говорит, что "Вася врёт, и он ел варенье", что подтверждается, если Маша говорит правду. Таким образом, получается, что варенье ел Вася.