Var f1,f2:text;
a,b,t,t1:integer;
begin
assign(f1,'input.txt');
reset(f1);
assign(f2,'output.txt');
rewrite(f2);
readln(f1,a,b,t);
t1:= t mod (2*a+2*b);
if (t1>=0)and(t1<a) then writeln(f2,'S')
else if (t1>=a)and(t1<a+b) then writeln(f2,'E')
else if (t1>=a+b)and(t1<2*a+b) then writeln(f2,'N')
else writeln(f2,'W');
close(f1); close(f2);
end.
Вот решения на с++.
Оба делал через операторы if.
В пятеричной системе 0.33=0.13111111111
в пятнадцатеричной 0,33=0,4E3B3B3B3B3
Запишем 32-значное двоичное число без лишних знаков. При необходимости добавляем ведущие нули
"00100110101101110000111110110110"
Разделим на 4 группы по 8 цифр и переведем их в 10ричную сс
00100110{2} = 38{10}
10110111{2} = 183{10}
00001111{2} = 15{10}
10110110{2} = 182{10}
IP = 38.183.15.182