var a: array[1..2,1..4] of real; b,c: string; d,x,y: real; i,j: integer; begin b:='ABCD'; c:='xy'; writeln('трапеция ABCD'); for i:=1 to 4 do begin writeln('координаты точки ',b[i],': '); for j:=1 to 2 do begin write(' ',c[j],i,' = '); readln(a[j,i]); end; end; x:=(a[1,3]-a[1,2]+a[1,4]-a[1,1])/2; y:=(a[2,3]-a[2,2]+a[2,4]-a[2,1])/2; d:=sqrt(x*x+y*y); writeln('длина средней линии: ',d:5:2); end.
ввод - вывод
трапеция ABCD координаты точки A: x1 = 3 y1 = 2 координаты точки B: x2 = 5 y2 = 5 координаты точки C: x3 = 9 y3 = 5 координаты точки D: x4 = 10 y4 = 2 длина средней линии: 5.50
b,c: string;
d,x,y: real;
i,j: integer;
begin
b:='ABCD'; c:='xy';
writeln('трапеция ABCD');
for i:=1 to 4 do
begin
writeln('координаты точки ',b[i],': ');
for j:=1 to 2 do
begin
write(' ',c[j],i,' = ');
readln(a[j,i]);
end;
end;
x:=(a[1,3]-a[1,2]+a[1,4]-a[1,1])/2;
y:=(a[2,3]-a[2,2]+a[2,4]-a[2,1])/2;
d:=sqrt(x*x+y*y);
writeln('длина средней линии: ',d:5:2);
end.
ввод - вывод
трапеция ABCD
координаты точки A:
x1 = 3
y1 = 2
координаты точки B:
x2 = 5
y2 = 5
координаты точки C:
x3 = 9
y3 = 5
координаты точки D:
x4 = 10
y4 = 2
длина средней линии: 5.50
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int n(0),m(0);
cin >> n >> m;
int matrix[n][m];
char arr[n][m];
arr[0][0] = '0';
for(int i = 0;i<n;++i){
for(int j = 0;j<m;++j){
cin >> matrix[i][j];
if(!i && !j)continue;
if(!i){
matrix[i][j] += matrix[i][j-1];
arr[i][j] = 'R';
}
if(!j){
matrix[i][j] += matrix[i-1][j];
arr[i][j] = 'D';
}
if(i && j){
matrix[i][j] += max(matrix[i-1][j],matrix[i][j-1]);
if(max(matrix[i-1][j],matrix[i][j-1]) == matrix[i-1][j])arr[i][j] = 'D';
else arr[i][j] = 'R';
}
}
}
cout << matrix[n-1][m-1];
cout << "\n";
string s;
for(int i = n-1;;){
for(int j = m-1;;){
if(arr[i][j] == '0'){
reverse(s.begin(),s.end());
s.erase(0,1);
cout << s << endl;
return 0;
}
s.push_back(arr[i][j]);
s.push_back(' ');
if(arr[i][j] == 'R'){
j -= 1;
continue;
}
if(arr[i][j] == 'D'){
i -= 1;
continue;
}
}
}
cout << endl;
return 0;
}
Объяснение: