1. Куча / Говнокод #18939

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    l =: 3 :  'LF,~":<./(*/,*/"1)(i.2){(\:~,./:~)t=.}.".y rplc LF,'' -_'''
    
    l&.stdin ''
    exit ''

    Запостил: Abbath, 29 Октября 2015

    Комментарии (33) RSS

    • Офтопик. Напомнило C=}>;*{)) — пьяный злой чёрт в парике, надетом наоборот, с усами и с двойным подбородком.
      Ответить
    • а можно суть того, что оно делает?
      Ответить
      • Ищет минимальное произведение
        #include <iostream>
        #include <vector>
        #include <algorithm>
        #include <iterator>
        using namespace std;
        int main() {
        	int n,i=0;
        	cin >> n;
        	vector<double> v(n);
        	for(istream_iterator<double> it(cin); i < n; v[i] = *it++, i++);
        	sort(begin(v), end(v));
        	vector<double> t{v[0]*v[1], v[n-1]*v[n-2], v[0]*v[n-1]};
        	cout << *min_element(begin(t), end(t));
        	return 0;
        }
        Ответить
        • Лень читать код - минимальное произведение из всех возможных элементов вектора?
          Ответить
          • Да, возможных пар элементов.
            Ответить
            • v=:({.@}.*{.)@/:~ 
                 v 5 59 34 6 1
              5


              так или туплю?
              Ответить
              • С отрицательными работает? Со смесью положительных и отрицательных? С нулём?
                Ответить
                • не, так работает

                  v =:<./@((#~(-.@= <./))*<./)
                     
                     v 5 59 34 6 1 _100 _10
                  _5900


                  или так

                  v =:<./@(}.*{.)@/:~
                  Ответить
        • хуйня логлинейная
          Ответить
          • .
            Ответить
          • Теперь линейная
            #include <iostream>
            #include <algorithm>
            #include <iterator>
            #include <list>
            using namespace std;
            int main() {
            	int n,i=0;
            	cin >> n;
            	list<double> v;
            	for(istream_iterator<double> it(cin); i < n; v.push_back(*it++), i++);
            	auto p1 = minmax_element(begin(v), end(v));
            	auto p = make_pair(*(p1.first), *(p1.second));
            	v.erase(p1.first);
            	v.erase(p1.second);
            	p1 = minmax_element(begin(v), end(v));
            	list<double> t{p.first*p.second, *(p1.first)*p.first, *(p1.second)*p.second};
            	cout << *min_element(begin(t), end(t));
            	return 0;
            }
            Ответить
            • Хуясе код от веткардиохирурга. Я к вам лечиться пойду, когда прижмёт.
              А если в первой крестовой версии заменить sort на partial_sort, сложность же будет не намного хуже?
              Ответить
              • Нам и конец вектора нужен. Так что partial_sort не прокатит. Зато можно так:
                #include <iostream>
                #include <vector>
                #include <algorithm>
                #include <iterator>
                using namespace std;
                int main() {
                	int n,i=0;
                	cin >> n;
                	vector<double> v(n);
                	for(istream_iterator<double> it(cin); i < n; v[i] = *it++, i++);
                	nth_element(begin(v), begin(v), end(v));
                	nth_element(begin(v), begin(v)+1, end(v));
                	nth_element(begin(v), end(v)-2, end(v));
                	nth_element(begin(v), end(v)-1, end(v));
                	vector<double> t{v[0]*v[1], v[n-1]*v[n-2], v[0]*v[n-1]};
                	cout << *min_element(begin(t), end(t));
                	return 0;
                }
                Ответить
    • Нихуя непонятно...
      Ответить
    • Это J/K? Не понимаю упорышей, которые на нем пишут. Причем даже коммерческие проекты на нем есть.
      Ответить
      • А я никогда не понимал тех, кто говорит на китайском.
        Ответить
        • Неверная аналогия. Правильнее бы было так: кто-то выучил арабский алфавит и решил использовать его вместо кириллицы в русском языке, а еще убрал пробелы и переносы строк, потому что они не нужны.
          Ответить
          • Пожалуй, соглашусь. Проблема J не столько в семантике, сколько в нечитаемых знаках препинания. Если бы в нём, как в SQL, каждый оператор обозначался словом на каком-нибудь естественном языке (например, на английском), читалось бы намного легче.
            Ответить
            • Такое есть. Каждую закорючку можно поменять на ее название. Это есть где-то в стандартной либе.
              Ответить
      • Коммерческие проекты на J?!
        Ответить
        • Да, меня однажды приглашали биржевых роботов каких-то писать на нем. Якобы, это быстрее, чем на нормальных языках.
          Ответить
          • И защита от конкурентов
            Ответить
          • я думаю пишется на нем там. 1 . готовятся тесты. 2. подключается генератор символов. 3. арендуется овердохуя серверов. запускается.
            После каждой генерации запускаются тесты, если тесты проходят значит программа написана. Все довольны.
            Ответить

    Добавить комментарий