Просто предполагаем что Андреев соврал о том что он из Онеги. Получается Григорьев - Каргополь. Затем, понимаем что в если в Каргополе уже живет Григорьев, то первое утверждение Борисова ложное, тогда Борисов - Коряма. Григорьев действительно из Каргополя, тогда Данилов =/ Вельск. Если Данилов не из Вельска, тогда Андреев - Коряжма. Остается 2 города. Если Данилов =/ Вельск, то тогда Данилов - Онега, а Васильев - Вельск. Если бы мы в первом выбрали другой вариант, то все равно путем логических вычислений, мы бы наткнулись на противоречие.
2x-3-3=5-3; 2x-6=2; 2x=2=6; 2x=8; x=2;
2x-3-0.5=5-0.5; 2x-3.5=4.5; 2x=8; x=2;
2x-3+0.25=5+0.25; 2x-2.75=5.25; 2x=5.25+2.75; 2x=8; x=2.