Полные обороты не влияют на положение финиша, так что их можно вычесть из дистанции. Периметр прямоугольника равен 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")
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include<iostream>
using namespace std;
int main(){
float a[10], sum=0, proiz=1;
int i,j,n,k,l;
cout<<"Vvedite elementy massiva";
for(i=0; i<n; i++) cin>>a[i]>>"\n";
float max=a[0],min=a[0];
for(i=0;i<=n;i++){
if(a[i]<0) sum+=a[i];
if(max>a[i]) k=i;
if(min<a[i]) l=i;
};
cout<<"\nsum="<<sum<<"\n";
while(i<=n){
if(l<k) for(i=l;i<=k;i++) proiz*=a[i]; else for(i=k;i<=l;i++) proiz*=a[i];};
cout<<"\nproiz="<<proiz;
for (i=0;i<=n-1;i++)
for (j=i+1;j<=n;i++)
if(a[i]>a[j]){
sum=a[i];
a[i]=a[j];
a[j]=sum;
}
for(i=0;i<=n;i++){cout<<"\na[i]="<<a[i]<<"\n";};
system("pause");
return 0;
}