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

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

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

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



Сообщение: 30
ссылка на сообщение  Отправлено: 28.04.22 09:40. Заголовок: Другой ответ в №3766(А.Кабанов)


Добрый день. При ответе на первый вопрос задачи 3766 получается другой ответ. В чём ошибка ?
 
const
n = 5000;
var
m: array[1..n] of integer;
i, j, srpar, min, k1, k2, z, a, p: integer;

begin
assign(input, '26.txt');
for i := 1 to n do
begin
readln(a);
m[ i] := a;
end;
for i := 1 to n - 1 do
for j := i + 1 to n do
begin
if (m[ i] + m[ j]) mod 2 = 0 then
begin
srpar := (m[ i] + m[ j]) div 2;
for p := 1 to n do
if (m[ p] < srpar) then inc(k1) else inc(k2);
end;
if (k1 >= 2500) and (k2 >= n div 4) then inc(z);
end;
write(z);
end.


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







Сообщение: 583
ссылка на сообщение  Отправлено: 28.04.22 13:11. Заголовок: 1) Неоптимизированны..


1) Неоптимизированный алгоритм, вы никак не сортируете и не используете факт сортировки.
2) Куча детских ошибок
Поправил как мог
var  
m: array of integer;
i, j, srpar, min, k1, k2, z, a, p, n: integer;

begin
assign(input, '26-50.txt');
readln(n);
setLength(m,n);
for i := 0 to n-1 do readln(m[ i]);
for i := 0 to n - 2 do begin
println(i);
for j := i + 1 to n-1 do
begin
if (m[ i] + m[ j]) mod 2 = 0 then
begin
srpar := (m[ i] + m[ j]) div 2;
k1:=0;
k2:=0;
for p := 0 to n-1 do begin
if (m[ p] < srpar) then inc(k1);
if (m[ p] > srpar) then inc(k2);
end;
if (k1 >= n div 2) and (k2 >= n div 4) then inc(z);
end;
end;
end;
write(z);
end.


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



Не зарегистрирован
ссылка на сообщение  Отправлено: 02.05.22 02:00. Заголовок: подскажите, в чем у меня ошибка, пожалуйста


 
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>

using namespace std;

int main()
{
ifstream f("26-50.txt");

int n, cnt = 0, m = 10000000000;
f >> n;
vector<int> v(n);
int half = n / 2, quat = n / 4;

for (auto &i: v)
f >> i;
sort(v.begin(), v.end());

for (int i = 0; i < n; i++)
for (int j = i + 1; j < n; j++)
{
if ((v[ i] + v[j]) % 2 == 1)
continue;
int mid = (v[ i] + v[j]) / 2;

if (v[half-1] < mid && v[n-quat] > mid)
{
cnt++;
m = min(m, mid);
}
}

cout << cnt << " " << m << endl;
return 30;
}


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



Сообщение: 1
ссылка на сообщение  Отправлено: 02.05.22 02:02. Заголовок: странно, что сьело п..


странно, что сьело пробелы..

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



Сообщение: 31
ссылка на сообщение  Отправлено: 28.04.22 20:37. Заголовок: Спасибо, Алексей..


Спасибо, Алексей

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

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