program abc;
var a,b,l:int64;
begin
assign(input,'snail.in');
assign(output,'snail.out');
readLn(a,b,l);
if (l div (a+b)) mod 2 = 0 then if (l mod (a+b))-a<0 then writeLn('BOTTOM') else writeLn('RIGHT')
else if (l mod (a+b))-a<0 then writeLn('TOP') else writeLn('LEFT')
end.
ответ:не принимая во внимание цифры на картинке должно быть как то так
Объяснение:
Полные обороты не влияют на положение финиша, так что их можно вычесть из дистанции. Периметр прямоугольника равен P = 2(A + B), так что после выкидывания полных оборотов дистанция будет равна L mod P, где mod - операция взятия остатка. После этого L < P; если L < A, то финиш будет снизу, если A < L < A + B - справа, если A + B < L < 2A + B - сверху, а иначе слева.
Код (python 3):
A = int(input())
B = int(input())
L = int(input())
P = 2 * (A + B)
L = L % P
if L < A:
print("BOTTOM")
elif L < A + B:
print("RIGHT")
elif L < 2 * A + B:
print("TOP")
else:
print("LEFT")
#include <iostream>
using namespace std;
int main()
{
int L,A,B,P;
cin >> A >> B >> L;
P = (A+B)*2;
if(L > P)
L %= P;
if(L > 0 && L < A)
{
cout << "BOTTOM";
return 0;
}
if(L > A && L < A+B)
{
cout << "RIGHT";
return 0;
}
if(L > A+B && L < 2*A + B)
{
cout << "TOP";
return 0;
}
if(L > P - B && L < P)
{
cout << "LEFT";
return 0;
}
}
Объяснение: easy, bro