Для решения этой задачи мы можем использовать метод исключения, основываясь на предоставленной информации. Давайте последовательно применим известные факты:
1) Иван работает не в Москве, а Дмитрий не в Калининграде.
2) Москвич преподает не физику.
3) Тот, кто работает в Калининграде, преподает химию.
4) Дмитрий преподает не литературу.
Сначала рассмотрим пункт 3: кто работает в Калининграде, тот преподает химию. Так как Дмитрий не работает в Калининграде (по пункту 1), остаются Иван и Степан.
Теперь рассмотрим пункт 1: Иван работает не в Москве. Значит, Иван мог бы работать в Калининграде или Перми. Но если Иван работает в Калининграде, он преподает химию (по пункту 3). Это возможный вариант.
Теперь у нас остаются Степан и Дмитрий, которые могут работать в Москве или Перми. Так как москвич не преподает физику (по пункту 2), и Дмитрий не преподает литературу (по пункту 4), то если Дмитрий работает в Москве, он мог бы преподавать только химию. Но химия уже занята Иваном в Калининграде. Значит, Дмитрий не работает в Москве.
Таким образом, Дмитрий работает в Перми и, так как он не преподает литературу, он преподает физику (единственный оставшийся вариант).
Теперь Иван работает в Калининграде и преподает химию, Дмитрий работает в Перми и преподает физику. Остается Степан, который, следовательно, работает в Москве и преподает литературу (единственный оставшийся вариант для Москвы и для предмета).
Итак, ответ:
- Иван преподает химию в Калининграде.
- Дмитрий преподает физику в Перми.
- Степан преподает литературу в Москве.