// PascalABC.NET 3.2, сборка 1407 от 18.03.2017 // Внимание! Если программа не работает, обновите версию!
function Geron(a,b,c:real):real; // возвращает площадь треугольника со сторонами a,b,c begin var p:=(a+b+c)/2; // полупериметр Result:=sqrt(p*(p-a)*(p-b)*(p-c)) end;
function Sp(ab,bc,ca,ad,bd,cd:real):real; // возвращает площадь полной поверхности пирамиды begin Result:=Geron(ab,bc,ca)+Geron(ab,ad,bd)+Geron(bc,bd,cd)+ Geron(ca,cd,ad) end;
begin var ab1,bc1,ca1,ad1,bd1,cd1:real; Vvod(ab1,bc1,ca1,ad1,bd1,cd1); var Sp1:=Sp(ab1,bc1,ca1,ad1,bd1,cd1); var ab2,bc2,ca2,ad2,bd2,cd2:real; Vvod(ab2,bc2,ca2,ad2,bd2,cd2); var Sp2:=Sp(ab2,bc2,ca2,ad2,bd2,cd2); var d:=Sp1-Sp2; if d>0 then Writeln('Площадь Sполн 1й пирамиды больше на ',d) else if d<0 then Writeln('Площадь Sполн 2й пирамиды больше на ',-d) else Writeln('Площади Sполн пирамид равны'); end.
Это и будет наименьшее время.
#include <iostream>
#include <cstdlib>
using namespace std;
int main() {
int n,i,s;
bool priz=true;
cin>>n;
int b[n],c[n];
for (int i=0; i<n; i++)
{
cin>>b[i];
c[i]=i+1;
}
// сортировка масcива по не возрастанию
while (priz)
{
priz=false;
for (int i=0; i<n-1; i++)
{
if (b[i]<b[i+1])
{
swap(b[i],b[i+1]);
swap(c[i],c[i+1]);
priz=true;
}
}
}
s=0;
for (int i=0; i<n; i++) s+=b[i]*(i+1);
cout<<s<<endl;
for (int i=0; i<n; i++) cout<<c[i]<<" ";
cout<<endl;
system("pause");
return(0);
}
Ввод - вывод:
6
10 21 13 36 41 9
332
5 4 2 3 1 6
// Внимание! Если программа не работает, обновите версию!
function Geron(a,b,c:real):real;
// возвращает площадь треугольника со сторонами a,b,c
begin
var p:=(a+b+c)/2; // полупериметр
Result:=sqrt(p*(p-a)*(p-b)*(p-c))
end;
function Sp(ab,bc,ca,ad,bd,cd:real):real;
// возвращает площадь полной поверхности пирамиды
begin
Result:=Geron(ab,bc,ca)+Geron(ab,ad,bd)+Geron(bc,bd,cd)+
Geron(ca,cd,ad)
end;
procedure Vvod(var ab,bc,ca,ad,bd,cd:real);
// ввод значений ребер
begin
Writeln('Введите значения ребер пирамиды');
Write('Ребра основания- AB,BC,CA: '); Read(ab,bc,ca);
Write('Боковые ребра- AD,BD,CD: '); Read(ad,bd,cd)
end;
begin
var ab1,bc1,ca1,ad1,bd1,cd1:real;
Vvod(ab1,bc1,ca1,ad1,bd1,cd1);
var Sp1:=Sp(ab1,bc1,ca1,ad1,bd1,cd1);
var ab2,bc2,ca2,ad2,bd2,cd2:real;
Vvod(ab2,bc2,ca2,ad2,bd2,cd2);
var Sp2:=Sp(ab2,bc2,ca2,ad2,bd2,cd2);
var d:=Sp1-Sp2;
if d>0 then Writeln('Площадь Sполн 1й пирамиды больше на ',d)
else
if d<0 then Writeln('Площадь Sполн 2й пирамиды больше на ',-d)
else Writeln('Площади Sполн пирамид равны');
end.