// PascalABC.NET 3.3, сборка 1576 от 16.11.2017 // Внимание! Если программа не работает, обновите версию!
begin var a:=ReadArrInteger('Введите массив',ReadInteger('Введите длину массива')); var b:=ReadInteger('b =') - 1; a := a.where((v,i) -> i <> b).ToArray; a.Println; end.
Пример: Введите длину массива 5 Введите массив 1 2 3 4 5 b = 4 1 2 3 5
astahova
22.02.2022
Отсортируйте массив по не возрастанию (вместе с индексами) и подсчитайте сумму s = s+b[i]*(i+1) - индексы от нуля. Это и будет наименьшее время.
#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
Yuliya701
22.02.2022
// 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.
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Дан массив целых чисел требуется удалить из него єлемент стоящий на месте номер b сдвинув все последуещие элементи влево паскаль
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ReadArrInteger('Введите массив',ReadInteger('Введите длину массива'));
var b:=ReadInteger('b =') - 1;
a := a.where((v,i) -> i <> b).ToArray;
a.Println;
end.
Пример:
Введите длину массива 5
Введите массив 1 2 3 4 5
b = 4
1 2 3 5