Chat:Ru/2020-10-20

From CG community
Jump to navigation Jump to search

wlesavo: http://chat.codingame.com/pastebin/34fd9056-84b4-4e67-bf98-28ccdedcdb23

wlesavo: блин

wlesavo: magaiti ну тут за два часа понятно что последнюю может не решишь, но первые 4 вполне реально. у меня просто проблема в реализации, я сделаю вроде нормально, но не работает и не понятно подход кривой или руки

wlesavo: у кодджема того же конечно гораздо более реалистичные задания в первых двух турах, 4 задачи всего вполне решаемых, и начисление баллов в 3 этапа, за примитивные тесты, за что-то типа граничных случаев и за стресс тест

wlesavo: и без стресс теста в приципе большинство задач решаемы для среднего участника

wlesavo: ну и в любом случае тут же не на победу, а просто интересные задачки порешать

wlesavo: а и в кодджеме вроде что-то ближе к 4м часам

amurushkin: в кодджеме тоже 2 часа было раньше. 4 то в финале наверное

wlesavo: а, может путаю

wlesavo: но мне как-то времени казалось что больше, может потому что задач меньше

amurushkin: там просто задачи разной сложности. и 1-2 получалось у меня обычно всегда решить

amurushkin: но это было еще больше 10 лет назад

wlesavo: ну да, и иногда еще можно первые тесты в 3-4 успеть, но это в первых этапах, на предфинальных там уже халявных задач нет вроде

wlesavo: ого

wlesavo: 10 лет

Uljahn: а я 26 лет назад первый раз участвовал в спортивном программировании - в городской олимпиаде по информатике :older_man: :smiley:

amurushkin: я первые 3 года как он появился участвовал. вроде с 2007 по 2009 год примерно

amurushkin: оо ну школьные олимпиады это вообще топчик был для меня

amurushkin: правда не понимаю почему учителя не давали знания по алгоритмам для олимпиадников. если бы меня научили типовым задачам я уверен что смог бы намного больших результатов добиться

amurushkin: а так только городские выиграть мог а в области уже все

wlesavo: amurushkin вероятно школьные учителя многие сами не шарили. а так я только на физику с математикой ходил, хотя паскаль знал и мог бы наверное на програмирование тож попробовать

Uljahn: за день до олимпиады училка дала книжку "100 задач по информатике" или типа того, я её пролистал и запомнил флудфил, который и попался в одном задании, т.к. его никто больше не решил, я в итоге 2 место занял :relieved:

Uljahn: на бейсике закодил на PS/2

wlesavo: мой первый флудфил был в этом году :grinning:

magaiti: я участвовал в олимпиаде по информатике 1 раз, в школе

magaiti: а так на математические ездил каждый год

735487: wlesavo: мои олимпиады были физика, математика и информатика

magaiti: на информатике жесть была, бейсик на двк, никакого интернета

magaiti: причем я еще время потратил на дебаг, в итоге оказалось что баг в интерпретаторе

wlesavo: на республику по математике ездил регулярно, но так ничего и не взял, а по физике со скрипом один раз на диплом третьей степени пролез

735487: ну без интернета это да и компы с дискетками

magaiti: на физику тоже ездил

magaiti: вспомнил как расстояние от точки до прямой искал

735487: я что по физике что по информатике дальше области не проходил

magaiti: мой лучший результат - на региональной 3-е место поматематике

magaiti: но в итоге в универ пошел на физику

magaiti: смутили

wlesavo: magaiti какой факультет кстати

magaiti: мфти, фопф

wlesavo: ну про физтех то я помню, а я с проблем, почти коллега считай :slight_smile:

magaiti: дела давно минувших дней

magaiti: 2048 забросили, или кто-то еще ищет как увеличить счет?

wlesavo: я хочу для своего лучшего решения проверить разные змейки и брошу наверное

magaiti: никто дыбдра не подловил в темной аллее?

wlesavo: не, но очень хочется его послушать. врядли расскажет конечно, но может попозже намекнет хоть

magaiti: я тут думал кроме змейки сделать отсечку ррешений по условиям

wlesavo: в этом смысле контесты лучше, что там хоть пмы потом есть

735487: magaiti: 2048 почти забросил. иногда пытаюсь сабмитнуть а вдруг прокнет ))

magaiti: типа если вниз не ходим, и занято 4 верхних ячейки, то они по порядку должны быть

magaiti: если занято еще и следующая строка, то в ней все числа должны быть не больше чем в верху

magaiti: а в двух нижних числа не больше 1024

735487: я пробовал разные оценки эксперементировал. но не поймал жар птицу пока еще ))

magaiti: и в большинстве тестов за несколько секунд выходил на 1.7 счет, используя A* (эвристика змейка), и отбрасывая решения, которые по условиям не подходят

magaiti: но новых н нашел

magaiti: A* либо быстро находит решение, либо есть всю памят

magaiti: ь

magaiti: и тогда неясно, есть что-то там еще или нет

magaiti: 65536, 32768, 16384, 8192, 512, 128, 2048, 4096, 64, 32, 256, 1024, 16, 8, 4, 4,

                       65536, 32768, 16384, 8192, 512, 128, 2048, 4096, 64, 32, 256, 1024, 4, 4, 8, 16,

magaiti: вот например

magaiti: это 2 позиции в 16-м тесте, которые могут быт ьрешением

magaiti: а могут и не быть, пока неясно

magaiti: но остальные не прошли тестов обратной симы

magaiti: перебирал все комбинации чисел, фиксировал первые 6 (65к до 4096)

magaiti: пока не нашел решения как в эту позицию прийти с начальной (и можно ли вообще), но 300 ходов назад обратная сима делает

735487: ну если ты начинаешь с конкретной позиции может их пытаться решить не обратной симой? там вроде не так много ходов

magaiti: ходов много

735487: а ты не знаешь можно ли в нее попасть

magaiti: можно попытаться, но это в любом случае на несколько часов запускать

magaiti: да, не знаю как попасть

magaiti: считать с конца до 1-го хода не хватает памяти, как и с 1-го до конца, если не лучом, а вс решения смотреть

magaiti: нужно что-то придумыввать

magaiti: но это 300 ходов назад без испольования хода вниз

magaiti: и опять же, пока минимум 6 чисел фиксировал, то есть перебирал все перестановки 10 чисел

735487: а может надо с ходом вниз?

magaiti: с ходом дольше

magaiti: надо выбирать чем жертвовать

735487: у меня в 5 тесте только с ходом вниз находит решение

magaiti: такое может быть

magaiti: я использовал обратную симу с ходом вниз, находил 100к позиций разных, а потом лучем попадал в одну из них

magaiti: а в остальных тестах не попадаю лучом

magaiti: луч с начальной позиции без хода вниз

magaiti: тут проблема в том, что в 5-м тесте 8 чисел сверху упорядочены

magaiti: а в остальных тестах максимум 6

magaiti: для 8 я тестировал с ходом вниз, нет решений

magaiti: может быть нужен луч сильно шире, но тогда вренени не хватит

735487: забавно что дбдр как я понял довольно быстро такой счет взял. т.е он что то знает

magaiti: он же монстр цг, наверняка кучу алгоритмов знает на все случаи

MadKnight: если он монстр то он наверняка сразу прикинул как лучше всего сделать

magaiti: я уже думаю хотя бы в офлайне найти решение, и потом захардкодить

magaiti: лучше всего конечно найти максимально короткое решение от позиции до которой можно лучом дойти

magaiti: наверняка сразу прикинул

magaiti: можно предположить что случайно наткнулся, но учитывая что он в топе во многих задачках, выглядит подозрительно

magaiti: совпадение? не думаю

735487: у меня 2 теста первые 30-40к ходов хардкодом. давно сделал :)

735487: я просто взял тесты которые в 600 упирались и их типа продолжил. 6 и 8 так попались у меня

wlesavo: ну дбдр монстр конечно

magaiti: у меня по идее детерминировано все, кроме одной точки. но ее тоже можно детерминировать

magaiti: точка где кончается первая секунда

magaiti: вместо отступа на 50 позиций, можно брать фиксированную скажем 10000-ю

magaiti: обычно 15000 успевает за 1-й ход просчитать у меня

magaiti: потом я считаю луч до конца, или до стыковки с обратной симой

magaiti: после обратной симы запускаю еще луч

magaiti: и все это потом в буфер

magaiti: потом сижу, делаю вид что считаю

735487: а у меня вроде бы тоже детерминировано но зависит от скорости проца походу :)

magaiti: не, у меня просто начинает с того места где заончил

magaiti: каждый ход

magaiti: луч не отбрасывает, хранит все

magaiti: а выводит из буфера то, что за 1-й ход нашел

735487: у меня была мысль не чистить весь пул, а оставить те которые начинаются на те ходы что я вывожу. надо попробовать насколько это замедлит и что вообще даст

magaiti: достаточно 600 ходов вперед сделать, выбрать одного и сохранить.

magaiti: если плохо получится, выбрать другое число. захардкодить можно

magaiti: для каждого теста

magaiti: хотя бы по 1 символу выводить хватит, а остальное когда дорешаешь луч

735487: ну у тебя просто другой подход

Uljahn: а в офлайне вы нашли решения?

magaiti: неа

magaiti: если б нашли, можно было б захардкодить банально

Uljahn: ну да

magaiti: пара решений всего нужно чтоб дыбдра догнать

735487: у меня хардкодом 2 теста с трудом влезли.но я придумал что можно сжать хорошо. там почти любые 6 символов встречаютс от 50 до 400 раз.

735487: осталось только найти решение :)

magaiti: просто поищи алгоритмы сжатия, с упором на простоту распаковщика

magaiti: lz77 или что-то такое

735487: да было бы что паковать ))

MadKnight: magaiti я почитал твой линк

735487: не ну можно конечно эти 5 тестов чтобы не рандомили

735487: но вообще как я сам придумал взять все встречающиеся комбинации по 6 символов в одну мапу. и тогде решение будет набор цифр индексов из нее

magaiti: всего в 6 раз сжатие?

magaiti: и каждый индекс по 6 цифр ? :)

735487: ну я не считал сколько их всего будет :)

735487: но если ужать в 6 раз мне как раз хватит для 6 тестов ))

magaiti: ну тв можешь в 2 бита ужатьход, это 3 хода на символ сразу

magaiti: но лучше сжимать самопальным алгоритмом

magaiti: задать параметры что у нас не байты, а 4 хода всего, там сжатие в десяткти будет думаю

735487: дело же не в этом. нужно сначала найти решение которое сжимать надо ))

magaiti: https://algor.skyparadise.org/read/14

magaiti: вот прям код на пару страний

magaiti: ц*

Uljahn: import zlib :relieved:

magaiti: ну тоже вариант

magaiti: но имея код мы можем его затюнить как нам надо

magaiti: хотя, zlib ведь умеет сжимать в строку, которую можно в код засунуть:? или только питон так умеет

magaiti: decode кстати там в 10 строк, включая определение структуры данных

MadKnight: magaiti насчёт поиска пути: в общем идея была в том чтобы декларативно задать общую идею поиска пути, ну или общий алгоритм, а потом *отдельно* от этого закодить конкретную оптимизированную реализацию, причём чтобы компилятор проверял, не забагована ли реализация

magaiti: разные оптимизированные алгоритмы поиска пути, как правило, между собой не имеют ничего общего

magaiti: какой смысл их задавать декларативно

magaiti: https://stackoverflow.com/questions/180947/base64-decode-snippet-in-c

magaiti: вот варианты как в/из base64 кодировать

magaiti: ну то есть декларативно задать идею поиска - это просто задать интерфейс, набор задач, которые нужно реализовать

magaiti: а общий алгоритм - это бессмысленно

MadKnight: а, ты не понял

magaiti: и ссылка вообще была не про поиск, а про статический полиморфизм и модульность

MadKnight: разные алгоритмы поиска пути / конкретная реализация конкретного алгоритма под конкретное приложение

MadKnight: да да я знаю о чём была ссылка

MadKnight: не, декларативно задать поиск пути - это интереснее

magaiti: нет, я не понял . в чем плюсы по сравнению с заданием интерфейса (списка методов), и их реализацией

magaiti: ты хочешь сделать абстракцию, слой, где с одной стороны - задачи поиска, а с другой геттер топологии

magaiti: ну так можно

magaiti: но мне кажется, для разных конкретных вариантов топологии могут существовать более оптимальные конкретные решения

wlesavo: Automaton2000

magaiti: помре

magaiti: обрел самосознаеие и ушел в обдумывание плана захвата мира

magaiti: typedef struct { int k; int l; int a[2]; } T; typedef struct { int i; T t; } S; T x = {.l = 43, .k = 42, .a[1] = 19, .a[0] = 18 };

magaiti: фигасе, а я не знал

magaiti: что так можно

735487: прикольно. можно не делать конструктор с кучей параметров

magaiti: ну я думал можно только так T x = {42, 43, {18, 19}};

magaiti: то есть надо помнить порядок членов, и нельзя инициализировать вразнобой

magaiti: а оказалось можно

_Lion_: hello

MadKnight: Uljahn а со страктами можно в np работать ?

MadKnight: например массив страктов

MadKnight: мне нужно нагенерить массив из другого массива

MadKnight: массив стракта

MadKnight: и главное - даст ли это вообще буст в скорости?

Uljahn: да

Uljahn: массив страктов - это типа structured array

Uljahn: в numpy

MadKnight: да, но будет ли генериться массив быстрее?

MadKnight: если у меня вот есть 10к данных и мне нужно нагенерить массив из 20к страктов

MadKnight: ... нужно нагенерить structured array из 20к штук

MadKnight: это насколько быстро будет?

MadKnight: Uljahn если что - нужно нагенерить из другого structured array, просто в другом формате (в другой структуре)

magaiti: а как ты из 10к 20к хочешь получить?

Uljahn: в нампи скорее всего будет быстрее, чем в просто питоне без нумбы

MadKnight: мне нужно для каждого одного сделать 2 инстанса

MadKnight: в новом формате

MadKnight: struct1 orig[10];

MadKnight: struct2 newarr[20];

MadKnight: newarr[0] = func1(orig[0]); newarr[1] = func2(orig[0]);

MadKnight: newarr[2] = func1(orig[1]); newarr[3] = func2(orig[1]);

Uljahn: самое то для numpy

Uljahn: я бы сделал так - скопировал исходный массив, а потом инплейс применил функции

Uljahn: т.е. orig[20]

Uljahn: а уж результат можно в любом формате выдать, хоть построчно, хоть 1D

MadKnight: смотри у меня есть pandas таблица

MadKnight: id name timeStart timeend

MadKnight: мне нужно переконвертить её в

MadKnight: id name time eventType

MadKnight: eventType - это либо start либо end

Uljahn: условие?

MadKnight: ну и вот, мне нужно каждую ( id name timeStart timeend ) переконвертить в 2 штуки ( id name time 'start' ) ( id name time 'end' )

magaiti: а чего это тебя в питон потянуло, мэд?

MadKnight: прогу пилим

Uljahn: а если сразу pandas.DataFrame.where?

MadKnight: так я не фильтрую

MadKnight: мне в другой формат нужно переконвертить

MadKnight: причём каждый элемент нужно переконвертить в 2 элемента в новом формате

Uljahn: запили отдельный канал, а то зафлудили чат

MadKnight: да го в лс

wlesavo: тоже кажется что проще в пандасе сделать

Drugou: Кто-нибудь в курсе - тут можно подключить phpstorm или нет?

Drugou: чтобы текст набирать в своем ide?

735487: Drugou: есть два варианта. либо самому копировать потом код и вставлять или заюзать для этого плагин

Drugou: спасибо) а есть известный плагин для этого?

MadKnight: что значит - текст набирать в IDE ?

MadKnight: я не понял проблему

MadKnight: Drugou

Uljahn: в локальной IDE набирать код и синхронизировать с CG, наверное

MadKnight: аааа

Drugou: да, набирать в IDE и потом чтобы он автоматически прописывался в тектовый редактор сайта

MadKnight: так есть же CGSync и CG Local

MadKnight: они автоматически из файла с диска копируют

Drugou: Понял - почитаю и попробую разобраться как это заюзать)

Drugou: Спасибо большое!

735487: В ходе своей первой стажировки в Microsoft я разрабатывал библиотеки для работы со строками на Macintosh. Вот пример типичного задания: написать версию strcat, которая возвращает указатель на конец новой строки. Всего несколько строк кода на Си. Все, что я делал, было прямиком из K&R (Керниган и Ритчи — прим. пер.) — одной тонкой книги про язык программирования С.

735487: вашу мать. в Microsoft людей занять что ли нечем?

MadKnight: это какой год

MadKnight: и зачем им указатель на конец

MadKnight: ничё не понял

BorisZ: указатель на конец видимо чтоб длину можно было посчитать сразу - в общем разумная идея

BorisZ: для сишных строк которые на 0 заканчиваются

MadKnight: аааа

MadKnight: понял

MadKnight: ну оптимизациями занимаются

MadKnight: вопрос в том, какой это год

BorisZ: это magaiti скидывал вчера ссылку на статью на хабре

BorisZ: оттуда отрывок

magaiti: Spolsky started working at Microsoft in 1991[5] as a Program Manager on the Microsoft Excel team,

magaiti: стажировался до работы, очевидно, во время учебы. то есть где-то с 1987 по 1991

magaiti: сишные строки это ужас

magaiti: никто не мог себе представить что в будущем люди будут работать со строками длиной в мегабайты

735487: да что в С что в С++ со строками все плохо

BorisZ: в будущем все будут говорить и писать на одном языке, так что все вернется к старым добрым ascii

magaiti: c++ норм строки

magaiti: на китайском?

BorisZ: не будет ни кино, ни театра, одно телевиденье (с)

BorisZ: у китайцев тоже есть фонетические знаки, как-то же иностранные названия пишут они

magaiti: по крайней мере с++ строки хранят длину

amurushkin: они еще латиницу используют но как то по своему

amurushkin: например r у них как ж произносится

BorisZ: ну и вобще, индия заборет китай в перспективе сотни лет

amurushkin: magaiti: в С++ по сравнению с питоном или php работать со строками сущий ад я бы сказал

magaiti: пример?

magaiti: питон и пхп заточены под работу с текстом, как бы

magaiti: а с++ это общего назначения

amurushkin: да вся работа со стрками сплошной пример. хотя бы replace, startsWith и подобные функции на плюсах чтобы сделать это надо некрасивый код написать

magaiti: boosts::starts_with()

magaiti: boost*

amurushkin: про boost я вообще не вкурсе. не юзал ниразу

amurushkin: на cg его можно заюзать?

magaiti: неа

magaiti: цг ущербен

magaiti: ты на паскале не писал на цг?

magaiti: там ничего нет

magaiti: ни хеш таблиц, ни деревьев

amurushkin: нет на паскаль не тянет уже

magaiti: только двоичный поиск

magaiti: я что-то писал тут на паскале, хз, видимо обострение мазохизма было

amurushkin: я тут на паскале онбоардинг делал )))

amurushkin: чтобы на всех языках ачивку разлочить :)

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

magaiti: replace что должен делать кстати?

magaiti: boost::replace_all, boost::replace_first

magaiti: тоже еть

magaiti: есть*

amurushkin: ну видишь в бусте есть а в плюсах нет :)

magaiti: буст это плюсы

magaiti: цг просто зажали буст

amurushkin: да только его надо отдельно устанавливать. а в других языках из коробки удобно

BorisZ: буст вроде какой-то шибко здоровый, там еще буст2 был и еще чего-то

magaiti: ну это из разряда "у Виндоуз скучные обои"

amurushkin: это из разряда забыли запилить удобные важные функции и кивают на буст. мол вон кто то другой уже сделал чего нам напрягаться

magaiti: многие вещи в STL перекочевали из boost

magaiti: просто более приоритетные чем работа со строками

BorisZ: плюсы старенькие же, для своего времени там выло все что надо

magaiti: умные указатели например

magaiti: и даже regex

amurushkin: ну вот как так что даже регэкспа не было?

magaiti: их придумали в каком годк?

amurushkin: не знаю если честно

BorisZ: в конце 80-х вроде

amurushkin: а в каком году их включили в стандарт?

magaiti: в c++11 появились

magaiti: ты много хочешь, все и сразу

magaiti: а там три споловиной гика заседают

amurushkin: не находишь что долго соображали?

magaiti: просто человекочасов мало все сразу запихать в стандарт

amurushkin: если не успевают надо приглашать помошников значит. иначе со временем язык не выдержит конкуренции

magaiti: я думаю, людям, которые осознанно выбирают с++ вместо питона и PHP, регклярные выражениян не нужны

amurushkin: значит со временем он будет все более узкой направленности и вымрет

magaiti: 40 лет уже вымирает

magaiti: просто если бы std::regex включили вместо std::unique_ptr , шансы вымереть були бы выше

magaiti: мне кажется, в серьезном коде все равно никто регекспын не будет юзать, накладо слишком

magaiti: это для скриптов хорошо, где надо быстро накодить преобразование строк

amurushkin: regexp не только преобразование строк. для меня это в первую очередь поиск по шаблону

amurushkin: и вот что такое regex я знаю а что такое unique_ptr нет ))

amurushkin: но справедливости ради я мало чего о плюсах знаю

magaiti: может ты ошибся в выборе языка?

magaiti: это указатель который сам вызывает delete

amurushkin: нет просто я его юзаю для контестов :)

magaiti: а еще его нельзя копировать, но можно перемещать. и еще куча нюансов

amurushkin: а как можно указатель переместить? указывать на другую область памяти будет?

magaiti: нет, находиться будет в другой области памяти

amurushkin: из стека в кучу или как?

magaiti: суть не в том

magaiti: при копировании указателя у тебя будет 2 указателя

magaiti: с одним и тем же значением

magaiti: на какой из них вызывать delete?

magaiti: на оба нельзя

Uljahn: это как синглтон-указатель?

magaiti: хз что ты понимаешь под синглтоном

magaiti: синглтон имеет 1 инстанс по идее

magaiti: тут инстансов много, просто у них запрещены методы копирования

magaiti: но ты можешь переместить его в другую переменную, а в старой он обнулится

magaiti: если нужно иметь много инстансов вс одним значением,, тогда есть shared_ptr, со счетчиком ссылок

magaiti: но у него есть overhead в виде подсчета ссылок, и блока памяти где этот счетчик хранится

Uljahn: а, как weak_ref в питончике

magaiti: weak_ptr тоже есть

Uljahn: дак у питона сишка под капотом

Uljahn: у CPython

Uljahn: как чуть поглубже залезаешь, так начинаются всякие C-API, FFI, буферные протоколы и т.д.

magaiti: ну так закон дырявых абстрауций

magaiti: к*

magaiti: вчера кидал ссылку

magaiti: фундаментальная статья

magaiti: чтоб работать с мощным инструментом, нужно знать что у него под капотом

magaiti: иначе будешь постоянно спотыкаться

amurushkin: а что происходит с shared_ptr когда у него счетчик обнуляется? удаляется?

magaiti: да

magaiti: затем и нужен

amurushkin: я правда не понимаю практическое применение этих обоих _ptr

magaiti: чтоб менеджить память

magaiti: когда просто исползовать STL-контейнер недостаточно

magaiti: новички на плюсах в коде постоянно используют new и delete

magaiti: и ловят баги с их несоответствием

magaiti: когда в 99% случаев вместо этого можно заюзать стандартную структуру данных, а в оставшихся 1% умные указатели

magaiti: и еще баги с разыменовыванием указателей на удаленные объекты

magaiti: т.к. о понятиях владения ресурсами и времени жизни объекта имеют очень смутное представление

magaiti: и все это вместо того чтоб использовть язык со сборщиком мусора

magaiti: ради пресловутой эффективности, которой они не могут достигнуть, т.к. не знают вычислительной сложности алгоритмов, не говоря о конвейерной архитектуре и прочем

magaiti: *бъет себя пяткой в грудь*

Uljahn: всё правильно, поэтому я и не хочу плюсы учить - слишком много компетенций нужно, но новичкам даже это понять сложно

amurushkin: ну я взял массивы, ифы и циклы. мне хватает :)

Uljahn: нужно много знать, чтобы лучше знать, как много ты ещё не знаешь

amurushkin: главное что быстрее питона и gc не мучает как в джаве ))

Uljahn: ну, в мульти достаточно тепличные условия, так что такой подход выглядит рационально

magaiti: чем больше область твоих знаний, тем больше у нее периметр

magaiti: хм, а тут есть языки, в которых нет массивов, ифов или циклов?

BorisZ: ну я бы поспорил с тезисом что для того чтобы использовать технологию надо обязательно знать что у нее под капотом

Uljahn: мы про эффективное использование говорили, вроде бы

magaiti: зависит от того что понимать под словом использовать

BorisZ: так можно до микросхем, электронов и кварков спуститься

magaiti: кварки ты вряд ли сможешь перепрограммировать

magaiti: микросхемы тоже

BorisZ: достаточно чтобы был кто-то кто знает что под капотом ну или на худй конец инструкция что делать если кишки полезли наружу

magaiti: а вот объяснить начальству, почему ты не можешь решить проблему

BorisZ: сила - в специализации и в командной игре

magaiti: им может не понравиться идея что кроме тебя нужен еще один специалист, который за тобой будет кишки подчищат

magaiti: зачем тогда нужен ты

magaiti: ну да, нужна команда

BorisZ: это кроманьонец должен был знать всю инфу об окружающем мире на 100%, иначе бы не выжил, потому и мозги у них были больше чем у нас

BorisZ: а современные люди по отдельности глупее, а вместе сильнее, коллективный разум ептить

BorisZ: наше будущее - муравейник

magaiti: http://chat.codingame.com/pastebin/ab21df22-fe0a-4b05-ac4b-e417aa24f5d2

magaiti: http://chat.codingame.com/pastebin/26ce9470-43dd-4cef-9141-3dad970f6bbb

BorisZ: во, в каждой шутке только доля шутки )

BorisZ: начали с nuil-terminated strings а закончили коллективным разумом

BorisZ: у кого-то болезненная сколнность к обобщениям (

magaiti: недожали, надо было тепловой смертью вселенной заканчивать

magaiti: терминальным нулем

BorisZ: ладно, забанят еще строгие модеры за флуд то

Uljahn: если флуд интересен более чем одному человеку, то не забанят

wlesavo: особенноесли флуд интересен модеру

Uljahn: ну или пока никто не пожаловался на флуд

magaiti: ульян, ты модер?

MadKnight: da

MadKnight: а что?

MadKnight: а, щас чат прочитаю

magaiti: поступила разнарядка на баны?

MadKnight: там банят за бессмысленный не несущий вообще никакого смысла детский флуд

MadKnight: абсолютно бессмысленные сообщения

MadKnight: типа

magaiti: а за недетский флуд не банят?

MadKnight: главное - чтобы смысл хоть какой-то был

MadKnight: тогда это не флуд

MadKnight: не то чтобы смысл, а скорее суть

MadKnight: ima good human

MadKnight: i eat beans

MadKnight: вот, сути никакой, смысла никакого

magaiti: да, веганов банить полюбому

amurushkin: а если про жеэль )))

amurushkin: вообще запретная тема :)

magaiti: про что?

amurushkin: тебе не понять ))) ты сильно поздно пришел в чат )))))

amurushkin: в этом году

amurushkin: тут просто был чел который кубера переплюнул

amurushkin: раза 4 а то и 5 его банили

amurushkin: кстати из за него по сути и ульяну модерку дали ))

amurushkin: он тут такие полотная флуда выдавал что пипец

amurushkin: то про фряху то про линукс то про opengl

magaiti: ульян кинулся грудью на амбразуру?

magaiti: а, скучно

magaiti: я думал про GL-06

amurushkin: он мог на любую тему и исключительно даже сам с собой

magaiti: рассказывал, как пропатчить КДЕ-2 под фрибзд?

amurushkin: при этом беседовать было бесполезно

amurushkin: пуканы тут всем подорвал

amurushkin: даже в world всех достал

amurushkin: а главная его оособенность была это короткие сообщения и много. очень много

magaiti: https://bash.im/quote/376543

amurushkin: вот почти как я сейчас

magaiti: буфер чата переполнял, как у рефери в 2048,

magaiti: *

magaiti: ?

amurushkin: буфер у чата не знаю а вот мозги у всех закипали. доходило даже до того что ru2 делали ))))

amurushkin: это тяжело передать вобщем. ну можно логи наверное тебе показать но это потерянное время

magaiti: ru2 это серьзно

Uljahn: кстати, логи канала частично есть на https://cg.spdns.eu/wiki/Special:PrefixIndex?prefix=Ru%2F&namespace=3000

Uljahn: там на это чудо можно посмотреть

amurushkin: а вспомнил там были еще долгие споры о структурах данных :)

amurushkin: что в плюсах их нет а есть классы :)

amurushkin: или чето такое :)

Uljahn: да он думал что мы про стракт ему втираем))

magaiti: класс - это структура данных

magaiti: агрегат

magaiti: я помню кто-то сказал "я могу это написать не используя структуры данных"

magaiti: и тут я взвелся

magaiti: но как я понял, понимается под этим что-то сложнее массива

magaiti: а нет

magaiti: короче, пишут разное

magaiti: вплоть до того, что char это примитивная структура данных

MadKnight: так какие новости про RAIC ?

magaiti: ну формально я согласен, но в разговоре никто не будет говорить data structure подразумевая примитивные типы

magaiti: а, вспомнил еще тему

magaiti: говорили про то что за 2 часа можно решить 4 задачи из яндекс контеста

magaiti: так вот, мне неинтересны задачи, которые можно решать по 4 за 2 часа

magaiti: я уже на цг устал решать всякий шлак ради баллов

magaiti: вот про игру на клетчатой бумаге было неплохое мясо

magaiti: у меня осталось 7 попыток сабмита из 100, что ли. при том что я с акого-то момента разрабатывал в оффлайне

amurushkin: MadKnight: так какие новости про RAIC ? пока все ждут обещанного анонса

amurushkin: magaiti: так вот, мне неинтересны задачи, которые можно решать по 4 за 2 часа, но там то ты это делаешь ради того чтобы пройти в финал и попытаться выиграть. да и не каждый может так

Uljahn: не каждый может заставить себя заниматься неинтересным делом

amurushkin: кто нибудь хочет поиграть в игру которая не существует? типа есть идея но нет игры

amurushkin: приму в дар идеи для игр :)

MadKnight: amurushkin всмысле

MadKnight: тебе игр не хватает?)

MadKnight: хочешь новую?)

MadKnight: amurushkin возьми любую старую аркадную игру

MadKnight: или сделай игру - генератор игр

MadKnight: скорее не игру

MadKnight: а просто генератор игр

MadKnight: и сгенерируй 10 интересных правил

Uljahn: есть же проекты автоматической генерации игр, Yavalath так создали

MadKnight: но интереснее же самому запилить

amurushkin: я же не ремейк хочу. а что то свое

MadKnight: ты идею свою хочешь типа?

MadKnight: или ты хочешь не свою идею, но которая при этом не ремейк?

amurushkin: вот за неимением пока что совсем своих идей решил у вас поспрашивать

MadKnight: ну пойди логическим путём

MadKnight: что нужно для игры?

MadKnight: для хорошей игры

MadKnight: нужно чтобы было что решать боту

amurushkin: да бот тут при чем. я вообще игру а не для сг

MadKnight: аааааааа

MadKnight: ну запили шутер на UE4 с использованием этих very high-res AAA моделек персонажей

MadKnight: бесплатных

amurushkin: я решил что буду пробовать godot

MadKnight: он на юнити чутка похож

amurushkin: я пару видосов глянул. он для меня вроде понятнее чем юнити

MadKnight: это в начале

magaiti: тетрис-боевой рояль? а черт, уже придумали

magaiti: чет я посмотрел видосы, и подумал, что правда в STL как-то мало хеш-таблиц, всего один вид

magaiti: а их же дофига вариантов есть

magaiti: на все случаи жизни, экономящие память, оптимизированные на лукап, на инсерт

magaiti: а еще кстати по поводу 2048

magaiti: можно такой вариант затестить - луч хранить сортированный, но вставлять не по 1-му элементу, а скажем по 100

magaiti: накопил 100, отсортировал, смержил с лучшо, удалил дубикаты, обрезал

magaiti: и следующие 100 эл-тов можно копить

magaiti: мерж за O(N)

magaiti: удаление дубликатов O(N)

magaiti: std::inplace_merge

magaiti: std::unique

magaiti: https://i2hard.ru/publications/25965/

Uljahn: amurushkin: из последнего мне Noita понравилась - офигенская симуляция физики, разрушаемое окружение, процедурная генерация уровней и т.д.

Uljahn: особенно прикольно там залипать в конструкторе заклинаний (практически язык программирования на основе пиктограмм), создавая спеллы с неожиданными побочными эффектами

inoryy: че мутите