Этого треда уже нет.
Это копия, сохраненная 31 июля 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Это копия, сохраненная 31 июля 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Если я правильно понимаю, там надо пройтись циклом по значениям, которые хранит массив, сравнить их, и если совпадают, то переменная, хранящая значение "максимум людей" ++. Но как это оформить в коде, я так и не понял.
Как это записать, аноны? Выручайте, вся надежда на вас! С меня океан благодарности!
Как это записать, аноны? Выручайте, вся надежда на вас! С меня океан благодарности!
бамп
бамп
бамп
бамп
Хоть кто-нибудь, помогите решить эту блядскую задачу.
Heeeeeelp
Помогите
>>69556 (OP)
Надо завести словарь и считать количества, потом найти максимальное.
Можно сгенерировать массив со всеми значениями, а потом найти элемент с максимумом вхождений, но это похуже.
Надо завести словарь и считать количества, потом найти максимальное.
Можно сгенерировать массив со всеми значениями, а потом найти элемент с максимумом вхождений, но это похуже.
>>69556 (OP)
для каждого интервала [x, y) добавить в новый массив (x, 1) (y, 0)
отсортировать этот новый массив, заметь что я наперенно добавил второй конец с 0, чтобы в отсортированном массиве закрывались старые интервалы в начале, потому что из второго примера следует что в момент y чел уже не находится в комнате, поэтому его нужно удалить прежче чем добавлять новых людей.
дальше завести счетчик count и обойти этот массив очевидным образом.
для элемента (x, type)
if (type == 0) count++;
else {
res= max(res, count)
count--;
}
и в конце return res;
для каждого интервала [x, y) добавить в новый массив (x, 1) (y, 0)
отсортировать этот новый массив, заметь что я наперенно добавил второй конец с 0, чтобы в отсортированном массиве закрывались старые интервалы в начале, потому что из второго примера следует что в момент y чел уже не находится в комнате, поэтому его нужно удалить прежче чем добавлять новых людей.
дальше завести счетчик count и обойти этот массив очевидным образом.
для элемента (x, type)
if (type == 0) count++;
else {
res= max(res, count)
count--;
}
и в конце return res;
Вот держи, наговнокодил тебе. Ну зато без сортировки и за О(n), лол
let arr = [[2,10],[3,4], [6,9]];
let enter = [];
let exit = [];
let count = 0;
let maxcount = 0;
for (let i=0; i<arr.length;i++) {
if (enter[arr[0]]!==1)
{enter[arr[0]] = 1;}
else {enter[arr[0]]++;}
if (exit[arr[1]]!==1)
{exit[arr[1]] = 1;}
else {exit[arr[1]]++;}
}
for (let j=1; j<=24; j++) {
if (enter[j] >= 1)
count = count + enter[j];
if (exit[j] >= 1)
count = count - exit[j];
if (count > maxcount)
maxcount = count;
}
console.log(maxcount);
let arr = [[2,10],[3,4], [6,9]];
let enter = [];
let exit = [];
let count = 0;
let maxcount = 0;
for (let i=0; i<arr.length;i++) {
if (enter[arr[0]]!==1)
{enter[arr[0]] = 1;}
else {enter[arr[0]]++;}
if (exit[arr[1]]!==1)
{exit[arr[1]] = 1;}
else {exit[arr[1]]++;}
}
for (let j=1; j<=24; j++) {
if (enter[j] >= 1)
count = count + enter[j];
if (exit[j] >= 1)
count = count - exit[j];
if (count > maxcount)
maxcount = count;
}
console.log(maxcount);
Вот держи, наговнокодил тебе. Ну зато без сортировки и за О(n), лол
let arr = [[2,10],[3,4], [6,9]];
let enter = [];
let exit = [];
let count = 0;
let maxcount = 0;
for (let i=0; i<arr.length;i++) {
if (enter[arr[0]]!==1)
{enter[arr[0]] = 1;}
else {enter[arr[0]]++;}
if (exit[arr[1]]!==1)
{exit[arr[1]] = 1;}
else {exit[arr[1]]++;}
}
for (let j=1; j<=24; j++) {
if (enter[j] >= 1)
count = count + enter[j];
if (exit[j] >= 1)
count = count - exit[j];
if (count > maxcount)
maxcount = count;
}
console.log(maxcount);
let arr = [[2,10],[3,4], [6,9]];
let enter = [];
let exit = [];
let count = 0;
let maxcount = 0;
for (let i=0; i<arr.length;i++) {
if (enter[arr[0]]!==1)
{enter[arr[0]] = 1;}
else {enter[arr[0]]++;}
if (exit[arr[1]]!==1)
{exit[arr[1]] = 1;}
else {exit[arr[1]]++;}
}
for (let j=1; j<=24; j++) {
if (enter[j] >= 1)
count = count + enter[j];
if (exit[j] >= 1)
count = count - exit[j];
if (count > maxcount)
maxcount = count;
}
console.log(maxcount);
>>69778
а теперь arr = дерьмо размером 10^6 из пар (a, b) где a, b числа от 0 до 2^64
ой, а что же делать? как получить линию?
а теперь arr = дерьмо размером 10^6 из пар (a, b) где a, b числа от 0 до 2^64
ой, а что же делать? как получить линию?
>>69778
Макаба съела индексацию. Короч, там где цикл фор двойная индексация - первый индекс равен i.
>>69784
Ну и?
У меня один проход по этому массиву.
Это была бы другая задача. Из условия ясно, что a, b - это время, которое может быть только от 1 до 24.
Макаба съела индексацию. Короч, там где цикл фор двойная индексация - первый индекс равен i.
>>69784
>arr = дерьмо размером 10^6
Ну и?
У меня один проход по этому массиву.
>где a, b числа от 0 до 2^64
Это была бы другая задача. Из условия ясно, что a, b - это время, которое может быть только от 1 до 24.
>>69839
Просто переводим все в часы и дальше работаем как обычно.
Проблемс?
>временем может быть и unix timestamp например.
>или микросекунды в пределах дня
Просто переводим все в часы и дальше работаем как обычно.
Проблемс?
>>69841
промежуток может быть > 1 дня.
Один хуй надо уточнять условия, мб твой вариант и подразумевался.
промежуток может быть > 1 дня.
Один хуй надо уточнять условия, мб твой вариант и подразумевался.
>>69859
Ну значит будет не 24 часа, а количество дней *24.
При переводе в часы сразу и запишем в таком виде.
Ну так там все ясно из примеров ввода.
А вообще кидай свой вариант, если знаешь как лучше.
Ну значит будет не 24 часа, а количество дней *24.
При переводе в часы сразу и запишем в таком виде.
>надо уточнять условия
Ну так там все ясно из примеров ввода.
А вообще кидай свой вариант, если знаешь как лучше.
17 Кб, 442x205
Простите, что на другом языке, все-таки задача про алгоритмы, а не про особенности языка.
Скажите, пожалуйста, можно ли решить эту задачу не за квадратичное время? Я не догадался.
Скажите, пожалуйста, можно ли решить эту задачу не за квадратичное время? Я не догадался.
17 Кб, 444x206
>>69915
Обосрался, порядок важен, вот так должно быть.
Обосрался, порядок важен, вот так должно быть.
>>69915
Ну я вот тут решил за О(n), правда наговнокодил.
А у тебя решено неправильно.
Вот такой массив сломает твою программу
[2,7], [3,8], [4,9], [5,10]
Ну я вот тут решил за О(n), правда наговнокодил.
А у тебя решено неправильно.
Вот такой массив сломает твою программу
[2,7], [3,8], [4,9], [5,10]
>>69948
Я уже осознал свою ошибку и исправился.
Не понимаю петушиный твой язык, можешь словами описать алгоритм? Такое чувство, что нихуя не за O(N).
Я уже осознал свою ошибку и исправился.
Не понимаю петушиный твой язык, можешь словами описать алгоритм? Такое чувство, что нихуя не за O(N).
>>69952
Чего ты там исправился, у тебя код такой же остался, ты зачем-то сам массив руками подогнал под код.
>Я уже осознал свою ошибку и исправился.
Чего ты там исправился, у тебя код такой же остался, ты зачем-то сам массив руками подогнал под код.
>>69988
Вы долбоеб и ничтожество. Я поменял массив, потому что на нем первый код неправильно работал. Второй код работает правильно. Они различаются.
Вы долбоеб и ничтожество. Я поменял массив, потому что на нем первый код неправильно работал. Второй код работает правильно. Они различаются.
For fufufuf
For
Тред утонул или удален.
Это копия, сохраненная 31 июля 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Это копия, сохраненная 31 июля 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.