На этом форуме отвечают на конкретные вопросы. Фраза «я не понимаю, как решать» — это не вопрос. На вопрос «как решить задачу №X» вас отошлют к материалам сайта kpolyakov.spb.ru. За бессвязный поток слов и неспособность формулировать свои мысли — бан.

Если у вас не сходится ответ на какую-то задачу, пожалуйста сразу представляйте свое «правильное» решение.
Программы "заворачивайте" в тэг [pre2]...[/pre2], при этом сохраняются все отступы и применяется моноширинный шрифт. Если у вас используется сочетание "[i]" для обозначения элемента массива или строки, ставьте пробел после открывающей скобки. Иначе система выделит все дальнейшее курсивом.

Для регистрации на форуме щелкните по ссылке «Вход-регистрация» вверху страницы. В открывшееся окошко «ник» введите свою фамилию на русском языке (например, Иванов). В окошко «пароль» введите придуманный вами пароль, состоящий из латинских букв и цифр. Поставьте галочку в окошке «зарегистрироваться, я новый участник» и нажмите кнопку «ОК».

АвторСообщение





Сообщение: 2
ссылка на сообщение  Отправлено: 22.04.21 23:22. Заголовок: задача 26 №46 не сходится ответ:количество получается 72 вместо 36 ,минимум тот же


var
A:array [1..500] of integer;
q,w,s,R,L,k,i,j,r1,N,n1,t,h:integer;
s1:string;
f:text;
begin
N:=500;
w:=MaxInt;
Assign(f,'26-46.txt');
Reset(f);
i:=1;
readln(f,s1);
while not eof(f) do
begin
readln(f,s1);
val(s1,n1,r1);
A:=n1;
i+=1;
end;

for i:=1 to (N-1) do
begin
q:=i;
for j:=(i+1) to N do if A[j]<A[q] then q:=j;

if q<>i then swap(A[q],A);
end;

for i:=1 to (N-2) do
for j:=(i+1) to (N-1) do
for t:=(i+2) to N do
begin
if ((A mod 3)+(A[j] mod 3)+(A[t] mod 3)) mod 3<>0 then continue;
s:=(A+A[j]+A[t]) div 3;
L:=1;
R:=N;
while L<R-1 do
begin
h:=(L+R) div 2;
if s<A[h] then R:=h else L:=h;
end;

if s=A[L] then
begin
k+=1;
w:=min(w,s);
end;
end;

writeln(k,' ',w);
end.

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 3 [только новые]







Сообщение: 4
ссылка на сообщение  Отправлено: 24.04.21 14:41. Заголовок: Среднее арифметическ..


Среднее арифметическое может быть нецелым числом. Где только возможно, имеет смысл избегать вещественную арифметику.
Выполняйте проверку нахождения среднего арифметического трех элементов в массиве домжножением на 3 элемента массива, а не деления на 3 суммы чисел тройки(ведь среднее может быть дробным числом, а div лишь берет целую часть от деления).

Ответы корректные. В принципе алгоритмическая сложность совпадает с вашей программой(учитывая, что обращение к ключу мэпа выполняется за логарифм).


 цитата:
#include <bits\stdc++.h>

using namespace std;

typedef long double ld;

#define int long long
#define all(a) a.begin(), a.end()
#define pb push_back

void fast_io()
{
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
}

signed main()
{
fast_io();
//freopen("26.txt", "r", stdin);
int n;
cin >> n;
vector <int> a(n);
map <int, bool> yes;
int ans = 1e18;
int cnt = 0;
for(int i = 0; i < n; i++)
cin >> a[ i], yes[a[ i] * 3] = 1;
for(int i = 0; i < n; i++)
for(int j = i + 1; j < n; j++)
for(int k = j + 1; k < n; k++)
if ((a[ i] + a[j] + a[k]) % 3 == 0 && yes[a[ i] + a[j] + a[k]])
{
cnt++;
ans = min(ans, a[ i] + a[j] + a[k]);
}
cout << cnt << " " << ans / 3;;
return 0;

}

ffcosinc Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 3
ссылка на сообщение  Отправлено: 25.04.21 19:30. Заголовок: Я вас не понимаю.Нас..


Я вас не понимаю.Нас спрашивают о числах в файле,которые одновременно и ср.ар.Но так как все числа в файле целые ,сл-но не имеет смысла искать нецелые среди целых,поэтому если сумма трёх не дел на 3 ,мы их не рассматриваем--в программе continue.А div в нашем случае равен частному,так как делятся только числа,кратные 3.

Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 6
ссылка на сообщение  Отправлено: 01.05.21 11:58. Заголовок: Константин пишет: f..


Константин пишет:

 цитата:
for t:=(i+2) to N do


Первый параметр ответа (количество пар) у вас не совпадает, потому что некоторые пары вы учитываете несколько раз.
Верно будет сделать

 цитата:
for t:= (j + 1) to N do



К тому же, тройку циклов верно будет переписать так:

 цитата:
for i:= 1 to N do
for j := i + 1 to N do
for t := j + 1 to N do



ffcosinc Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 101
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет