1. изобразить с кругов эйлера множества а={н, о, ч, к, а}, в= {р, е, к, а}, с={у, ч, е, н, и, к}. указать на схеме элементы множеств. найти и записать элементы, составляющие следующие множества:
Отсортируйте массив по не возрастанию (вместе с индексами) и подсчитайте сумму 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
Boris1247
30.03.2022
Попробуй Program PascalGuru; var s:string; f,t:text; function preobr(s:string):string;var i,j,p,n,sered:integer; gl,zp,slovo:string; m:array [1..80] of string;beginzp:='!?*,.'; gl:='аоуыэяеёюи'; p:=pos(' ',s); i:=0; repeat inc(i); slovo:=copy(s,1,p-1); m[i]:=slovo; delete(s,1,p); p:=pos(' ',s); until p=0; n:=i+1; m[n]:=s; for i:=1 to n do begin s:=m[i]; if pos(s[length(s)],zp)<>0 then p:=length(s)-1 else p:=length(s); sered:=(p div 2)+1; if (not odd(p)) or (p<3) then continue; if pos(s[1],gl)=0 then continue; if pos(s[sered],gl)=0 then continue; if pos(s[p],gl)=0 then continue; s[1]:=UpCase(s[1]); s[sered]:=UpCase(s[sered]); s[p]:=UpCase(s[p]); m[i]:=s+'('+s[1]+','+s[sered]+','+s[p]+')'; end; s:=''; for i:=1 to n do s:=s+m[i]+' '; preobr:=s;end; beginassign(f,'input.txt'); reset(f);assign(t,'output.txt'); rewrite(t); while not eof(f) do begin readln(f,s); writeln(t, preobr(s) ); end; writeln('Файл успешно записан...'); close(f);close(t);readln;end.
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
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