Кресты / Говнокод #19908 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
for(;++i <= n && std::cin >> a;)
		if(a >= 1.0 && ++bigger && std::cout << i << ' ');
		else
			if(mx < a)
				mx = a,
				maxi = i;

Решил сдать задачи на cf, в итоге выдавил из себя вот такой вот цикл.
Очень лень было ставить скобочки.

Запостил: hoholok hoholok, (Updated )

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

    • Я подсчитал, что использование ::std сэкономит мне три символа!
      Ответить
    • На CF всегда херачил std:: и буду всегда херачить std::
      Ответить
          • Чтобы здесь забанили, ты должен засирать этой рекламой все активные треды в течении нескольких месяцев...
            Ответить
  • for(;++i <= n && printf("%d", a) && ((a >= 1.0 && ++bigger && std::cout << i << ' ')||(mx < a && mx = a && maxi = i)););
    Ответить
      • точно не помню. но кажется std::cout не проканает, ибо при попытке запихать в переменную он кидает эксепшен
        Ответить
    • А ведь если подумать, то это даже можно назвать чем-то вроде продвинутой обфускацией кода.
      Ответить
      • Вы бы... это... поосторожнее писали программисту, знакомому с J, про обфускацию кода. А то ведь сейчас напугает нас обфускацией до смерти.
        Ответить
        • Тогда, меня наверное вообще тапками погонят, если я скажу, что это не компилируется в MinGW.
          Ответить
          • А ведь и вправду не компилируется: у && приоритет больше, чем у =, поэтому компилятор пытается это разобрать как (mx < a && mx) = a или как (a && maxi) = i и удивляется, почему с левой стороны не lvalue.
            Ответить
        • Кстати да, ждём код на J с разбором, как в соседних тредах.
          Ответить
          • тз можно? а то лень разбираться

            типа вывести все числа. большие 1. их количество и наибольшее число меньше 1?
            Ответить
          • если я правильно понял задачу, то как то так

            doSmth =: >./@(#~<&1);(];#)@(#~>&1) 
               doSmth 0.1 2 0.3 4 0.5
            ┌───┬───┬─┐
            │0.5│2 4│2│
            └───┴───┴─┘
            Ответить
            • Браво, маэстро!

              З.Ы. Скоро будешь хуярить на J как сам Роджер Хуй.
              Ответить
              • Скоро я буду целыми днями хуярить на шарпе за еду.

                я щас написал разбор того, что написал, инет лаганул и хуй вместо разбора(
                Ответить
              • >./@(#~<&1);(];#)@(#~>&1) = f g h где

                f = >./@(#~<&1)
                g = ;
                h = (];#)@(#~>&1)

                (f g h) a = (f a) g (h a) -- вилка

                f = >./@(#~<&1) = f1@f2 где

                f1 = >./
                f2 = #~<&1
                @ = глагол-связка - применить последовательно. (как точка в Хаскелле)

                f1 = f11/ где
                f11 = >.
                / = наречие - применить между

                наречия расширяют функционал глаголов

                f/ a b c d = (((a f b) f c) f d)

                >. - большее

                4 >. 5
                5


                >./ возвращает большее в векторе

                >./ 0.1 0.2 0.6
                0.6


                f2 = #~<&1 = f21 f22 где
                f21 = #~
                f22 = <&1

                (f g) - вилка
                (f g) a = a f (g a)

                f21 = f31~ где
                f31 = #
                ~ = наречие - зеркально

                a f~ b = b f a

                # - выборка

                1 1 0 0 0 1 # 0.1 0.2 3 4 5 0.6
                0.1 0.2 0.6


                f22 = <&1 = f42&1 где
                f42 = <
                & = наречие - связать с

                по сути - каррирование

                (+&1)1
                2


                < - меньше
                <&1) 0.1 0.2 3 4 5 0.6
                1 1 0 0 0 1

                соберем все в кучу

                >./@(#~<&1)

                выполнение происходит справа налево

                сначала (#~<&1) потом >./

                #~<&1 - сначала найти те, что меньше единицы а потом выбрать из из основного вектора
                #~<&1 - выбрать те, что меньше единицы

                >./ - найти наибольшее

                >./@(#~<&1) - найти наибольшее и тех, что меньше единицы

                Подписывайтесь на канал, как только этот коммент наберет 5 лайков выложу следующую часть
                Ответить
                • обещал - выкладываю

                  >./@(#~<&1);(];#)@(#~>&1)

                  первую часть мы разобрали - она возвращает максимум меньший единицы

                  рассмотрим вторую часть, состоящую из одного глагола
                  ;
                  Этот глагол означает упаковать и склеить
                  2 ; 3
                  ┌─┬─┐
                  │2│3│
                  └─┴─┘


                  или так

                  2 ; 'kjnkj'
                  ┌─┬─────┐
                  │2│kjnkj│
                  └─┴─────┘


                  то есть ; просто берет результаты выполнения 2 глаголов по бокам и запихивает их в одну упаковку

                  займемся

                  (];#)@(#~>&1)

                  Как можно заметить он состоит из 2 последовательно выполняемых глаголов

                  рассмотрим их в порядке выполнения

                  #~>&1

                  мы уже видели очень похожий глагол крюк

                  #~<&1

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

                  (#~>&1) 1 2 _3 4 _5
                  2 4


                  и последняя часть

                  ];#

                  это глагол вилка, состоящий из 3 простых

                  ] взять самого себя в нашем случае вектор чисел, больших 1

                  # взять длину вектора

                  ; а потом их склеить

                  (];#)@(#~>&1)  1 2 _3 4 _5
                  ┌───┬─┐
                  │2 4│2│
                  └───┴─┘


                  на самом деле я немного затупил

                  дело в том, что

                  (f g h) a = (f a) g (h a)
                  (g h) a = a g (h a)

                  дело в том, что ] a = a, то есть
                  (] g h) a = (] a) g (h a) = a g (h a) = (g h) a

                  (;#)@(#~>&1)  1 2 _3 4 _5
                  ┌───┬─┐
                  │2 4│2│
                  └───┴─┘


                  а теперь осталось лишь склеить это с максимумом и дело в шляпе

                  doSmth =: >./@(#~<&1);(;#)@(#~>&1) 
                     doSmth 0.1 2 0.3 4 0.5
                  ┌───┬───┬─┐
                  │0.5│2 4│2│
                  └───┴───┴─┘
                  Ответить
                  • спасибо, я уже умею sendmail.cf и регулярные выражения и пиво на морозе
                    зачем мне J?
                    Ответить
              • Я сначала подумал, что про Хуя шутка. Полез в Википедию проверять, узнал что язык J действительно разработан Хуем.
                Ответить
                • хуй, скорее, сделал APL доступным всем, а написал его, все таки Айверсон. Ему даже премию Тьюринга вкатали за это
                  Ответить
                • Вот это лол

                  "Транслятор J написан на языке Си с повсеместным («агрессивным» можно даже сказать) использованием препроцессора. И, как говорят сами авторы языка, интерпретатор J написан на J. А точнее — на том подмножестве языка J, которое можно получить силами препроцессора Си. В связи с этим для посторонних людей исходный код J выглядят практически нечитаемым. Кроме того, исходные коды «удачно» декомпозированы на отдельные файлы с такими говорящими названиями как a.c, b.c и т.д."
                  Ответить
                  • Так начинается файл a.c:
                    /* Copyright 1990-2006, Jsoftware Inc.  All rights reserved.               */
                    /* Licensed use only. Any other use is in violation of copyright.          */
                    /*                                                                         */
                    /* Adverbs                                                                 */
                    
                    #include "j.h"
                    
                    
                    static DF1(swap1){DECLF; R jt->rank?irs2(w,w,fs,jt->rank[1],jt->rank[1],f2):CALL2(f2,w,w,fs);}
                    static DF2(swap2){DECLF; R jt->rank?irs2(w,a,fs,jt->rank[1],jt->rank[0],f2):CALL2(f2,w,a,fs);}
                    
                    F1(jtswap){A y;C*s;I n;
                     RZ(w); 
                     if(VERB&AT(w))R ADERIV(CTILDE,swap1,swap2,RMAX,rr(w),lr(w));
                     else{
                      if(C2T&AT(w))RZ(w=cvt(LIT,w)) else ASSERT(LIT&AT(w),EVDOMAIN);
                      ASSERT(1>=AR(w),EVRANK);
                      n=AN(w); s=CAV(w); 
                      ASSERT(vnm(n,s),EVILNAME); 
                      RZ(y=nfs(AN(w),CAV(w)));
                      R nameref(y);
                    }}
                    
                    
                    static B booltab[64]={
                     0,0,0,0, 0,0,0,1, 0,0,1,0, 0,0,1,1,  0,1,0,0, 0,1,0,1, 0,1,1,0, 0,1,1,1,
                     1,0,0,0, 1,0,0,1, 1,0,1,0, 1,0,1,1,  1,1,0,0, 1,1,0,1, 1,1,1,0, 1,1,1,1,
                    };

                    А в файл j.h лучше не лезть.

                    P.S. Мне кажется, что исходникам J самое место на Говнокоде.
                    Ответить
          • продолжаем выебываться
            toBin =: [:}.((2&(<.@%~,|)@{.,}.)`]@.(=&0@{.))^:_
               toBin 100
            1 1 0 0 1 0 0
            Ответить
            • Напишите кто-нибудь юзерскрипт чтобы эти блядовысеры скрывать. Или мне политотой побампать, сучечки?
              Ответить
                  • Вы таки думаете, что 3_14dar, в красках описывающий прелести Windows и яростно ругающий прыщеговно, таки на самом деле использует Linux и не может выполнить скрипт с вышеуказанным содержанием?
                    Ответить
                    • У того, кто не пользуется прыщеговном, нет повода его так яростно ругать...
                      Ответить
                    • я думаю что он не может выполнить скрипт, потому что не умеет запустить cmd
                      Ответить
                      • А, он же только повершелл использует. Да, я призабыл.
                        Ответить
                        • нет, он дрочит на пауэршелл
                          но ни разу его не использовал

                          потому что в институте его не проходили
                          Ответить
                      • Ты меня с твоей мамкой не путаешь? Кстати, теперь она уже умеет запускать cmd
                        Ответить
                        • нееет)

                          ты тупой ламер-хуесос, который ничего не умеет и никому нахуй не нужен

                          тебя ни с кем не спутаешь;)
                          Ответить
              • ̘̗͎͙͎̽ͨͯͮe̦̝̝̟͕̭͕̻ͧͯͣ̐n̼͕͚̦̭̾̎ṱ̦͖̱͛ͣͣͅi ̻͛̈́ͬ̚ñ͔̣̪̄̅g̫͇͛ͭ ͈̮̙̥͉̹̯̻͚͊͊c͇̱̳̞̓̌͒̒͛̏ͨh̻̗̯̳̫̾ͪ̔ͩ͒a̒̈̒̄ͧ ̖͚̦̝̤̦͕̓́o̖͇̻̓̔s̲̥̝̘̼̺̠̻̜̋͆̇ͥ̔ͩ̏.̌͑̓̐͛͆̃ ͉̭̖͕̲
                ̻̥͎̺̻̐ͩI͓̟̖̘̥̪͎ͤ͑ñ̖̙̅͂̇ͦ̈́v̫̘͕̹̤̫̎ͅͅö͈́͐ ̣̞͈̬̦̻̤k̞̳̂̓̂̒̚i̙̳͍̝̗͈̺̓̅̅͌̆͐̇ǹ̫̗ͪ̽ğ͑̾ ̝̗̝̺̜̑ ͕̇̑̎̉̇t̜̜̰̬̰ͭ̇̇h͓̝͚͈̩͔͌̉ͬͦͧͮ̈͗ͅê͚̞͚͓̻̫̒ ͉ ̮̘̳̺̙̥̦̫͗͊ͯ̿͊ͧͬ͌f̬̰ͯe̜̙̞̺̯̭̞ͩ̒͒è͔͖̖͚͌̽̔ ̟ ̼͓̪̦̱̮͕͂̔͊͂ ̥̺͓̬̳̳̣̽̃ͅo̻̳̭̙̹͍͋̍́͐̚f͙̰̗ͫͧ͒ͬͭ͐ ̤̺ͪ̉̿͒c̹͔̦͈̲̗ͣ͌͌ͨh̙̗̙̞͕̺ͯ͒̉ͮ̔ͧͯͯa̘̻ͨͥ͐ͫ̅ ͍͈͎͙̖ȯ̺̙͖͋̓̎̿̑ͫs̰̲͖͔̤̤̥̹͕ͣ͆̈́̍͋.ͦ̓͆͗͌̅̌͊ ͓̩͉̤̱̌ͅ
                ͓ͫW̳͇̰̣̭͈̯̭̃̋̎̏͋ͭi͍̪̫͐͐̆́͗̐t͍̰̫͍̆͒͒ͦ͑̒̓ͭ h̪̤͗͗ͪͣ̿͆̽̆ͥ ̱͍̟͔̲̹̗̫́͑̊͋ͦͨͣö͕̻̌̾͌̿u̗͔͍ͬͦͦ̃ͥ͐t̩͖̹̩͇͐ ͎̭͎ ̞͖͗o͎͓̝̱̣̟ͭ͒͐͆̔̆̒̅ͅͅr̖͚̭̝̜̄̎̀̈́ͦͭ̚d̩̰̼̠͆ͤ ͔̬̩ẽ̥̻ͥ̓̍͗̀̐̇r̥̗̳̠͚̟̪͎̮̃.͈̰̜̤̯̲̜̏̋͒ͤͧ͗ͅ
                ̞͇̪̰̙̖͍ͣͪṰ͕̫̇̑ͧ̌ͫh͎͈͓̀̓́ͭ̑̿͆e̟͇̬̅̓̅͌ͪ͌̆ ̼̺̞͖ͅ ͙̣̍ͥͅN͉̼̘̪̗̳͖̣̋ e͈͇̱͚̗͙̠̓ͥ͂̂̒̋r̺͐ͩ̀̍ͦ͋̚̚d̖̟̘̹̳̫̞͐̈ͮͩ͆ ̪̫͙̲͖͎̦ͤͬ ̜̥̻̹ͩ̅ͥͪ̐̍̐͌̋o͓̙ͣ̏ͫ̑̚f̰̟̓̒̊ͭ̑ͥ ͕̺ͩͯ̊͗͗c͓̭͂ͬͤ̒͆ͪ̚h̠͙͖̩͉̅̂ͦȧ̪͔̀o͓̖͇ͥ̓̄́̅ ̼͙̮͇ͅs̮̜̝̣ͨ̐͌ͤ͆̈́.͖͉̮̒̒̅̇ ̙̲̤͉̠̜̭͕̈̋ͥ ͓̭͓̜ͫg̳̺̼̖͆o̞̬̐̉̑͊͛ͦ.̮̹ͮ̒ͬͫͭ̅ͣ̉ ̝̝̲̤̺͇̱͙ͯ͋ͯͦ̓
                ̮͖͔̯̻ͣ͛͆͑͊̒̽̇ ̠̖̦̮̹ͭ͛̊ͫT͇̘̫͖̗͓̤ͥ͑̂̑̊ͣͥ͐h͖̦͇̍̓ͩ̅̈́ͫͧͣ͛e͊ ̝̮̤̮̻̼͚̜͂ͬ͋ͧ̌̾͛ͅ ̭̳̩̦̞͎̜͛͑̓͂ͪ͐ͤͅͅW̟͚̫͕͓̺͍̅ả̜͕̭̻͚̗̖̂ͤl͊ͧͦ ͓̙̗͇̜͇̦͆̉ͣ͌̓l̰͍͇̟ͮ̓̇.̭͓̞̙̭̑ͬ͂
                ̹̘͇̳̘̥͍̉ͬ͆ͨ̃ͪ̿ ̳̳̯̳̹̠!͉̤͉̻̫̻͂̿͛ͬ̃
                Ответить
              • var J=4,M=8,D=6,D1=4; // (Nj>=M||N/Nj>D)&&Nj/(J*NJ)>D1
                var j={};[].forEach.call('#%&()*+,-./:;<=>@[]^_`{|}~',
                function(x){j[x]=1});var pituxi = $('.comment-text').
                filter(function(){var s=$(this).text().replace(/\s+/g,
                ''),n=0,k=0,r=0,i=0;for(;i<s.length;++i)s[i]in j?(++n,
                ++r>=J&&++k&&(r=0)):(r=0);return(n>M||n*D>s.length)&&k
                *J*D1>n;});
                
                // далее скрываем всё из pituxi известным скриптом
                pituxi.each(function(){$(this).closest('li.hcomment')
                .find('.entry-comment:first').addClass('entry-comme'+
                'nt-hidden').find('.comment-text:first').before('<s'+
                'pan class="'+'hidden-text"><a class="ajax" href="#'+
                '">Ко-ко-ко</a></span>');});
                Ответить
                • > ^_`
                  Сразу программа из одной строчки на Perl вспомнилась.
                  Ответить
                • Кстати, скрыло также комментарий с точками в квадратных скобках, а также недавний инканусовский с несколькими звёздами подряд. Возможно, нужно включить требование на J различных символов, а не просто символов или добавить условие на ник, или просто красить подозрительные комментарии для предупреждения:
                  pituxi.each(function(){ $(this).parent().css('background-color', '#ffc0c0'); });
                  Ответить
                  • Да просто сделай тест "более 10 закорючек подряд, причём не все из них одинаковы". Имхо, прокатит.
                    Ответить
                    • В принципе, да, только лучше с 7 начинать, судя по практике.
                      С другой стороны, в сообщении выше есть конструкции (){$( и );});, а значит достаточно сложная коллбечная лапша может заблокироваться (впрочем, 3_14dar отсутствие жс наверно воспримет как фичу)
                      Ещё кто-то может сказать что-то зацензуренное вида @^#&~!$@. Неясно, как код на J с идентификаторами точно отличить от JS; неясно, как сообщение с матами отличить от разбора кода на J.

                      var j={};[].forEach.call('#%&()*+,-./:;<=>@[]^_`{|}~'
                      ,function(x){j[x]=1;});var pituxi=$(".comment-text").
                      filter(function(){var b=$(this).text().replace(/\s+/g,
                      ""),d=0,c=0,e="",a;for(a=0;a<b.length;++a)b[a]in j?(e==
                      b[a]&&(c=0),++c>=7&&(++d,c=0)):c=0,e=b[a];return 0<d});
                      // питухи за 7
                      Ответить
                      • А ещё ведь можно написать программу на регэкспах, тогда она будет выглядеть как /^#(.*)[^:;]+#$/
                        Ответить
                        • Регекспы от J можно отличать по дизбалансу квадратных и фигурных скобок (в J). Хотя они там есть не в каждой проге ;(
                          Ответить
                          • осталось написать регексп, который будет фильтровать код на J и подать заявку в книгу Гиннеса в номинации "самый нечитаемый код"
                            Ответить
                        • Программу на регэкспах написать невозможно, ибо они не тьюринг-полные. А J-тьюринг полный, на нём можно написать, хоть и с лучами поноса от того, кто это будет поддерживать... Хотя... О чём это я? Регекспы же основной источник лучей поноса.
                          Ответить
                          • >> Регекспы же основной источник лучей поноса.

                            скорее области их применения - парсинг xml, html и json
                            Ответить
                            • Как вообще можно хмл парсить конечным автоматом?
                              Ответить
                              • Элементарно. В теории - один автомат, текст произвольной длины, произвольная структура, парсинг до самых мелких элементов, что можно встретить только в лабораторных условиях.

                                Для конкретной задачи может быть
                                1. конкретное строение XML,
                                2. достаточно только выделить кусок, а не разбирать его вплоть до каждого тега (например, <head>...</head> плюс <body>...</body>, не важно, что в body произвольная вложенность p),
                                3. длина ограничена,
                                4. разбор в цикле и другой окаймляющий регулярку/автомат код.
                                Ответить
                              • Есть такое популярное направление в теории автоматов, занимается аппроксимацией контекстно-независимых языков регулярными. Очень полезное направление, особенно для исследования неизвестных языков.
                                Ответить
                              • 1. Регекспы - *не совсем* конечный автомат.
                                2. Фрагменты искать вполне можно, но селекторы/xpath при малейшей сложности быстро становятся удобнее.
                                Ответить
                                • >>*не совсем*
                                  щито?


                                  реги именно что автомт, причем или детерменированный (в лучшием случае) или недетерминированный (в сложном)
                                  Ответить
    • Тобі, я бачу, мало пизди получить, – ти ще хочеш шоб тебе в сраку виєбли!
      Ответить
            • ты дурак, видимо. Еще раз объясняю: это суржик
              погугли эту фразу
              Лесь Подерв'янський на суржике и писал
              Ответить
              • Меня немного смущает что Сёма начал писать со всяких гуестинь и баропов, и сильно дерзит. И непонятно кто из них кто (не, иногда, конечно, понятно)
                Ответить
                          • Достали сами с собой разговаривать. Лучше напишите что-нибудь на "PHP".
                            Ответить
                                  • Предложи другой openid-провайдер, в котором можно быстро зарегистрироваться и который даёт не такие страшные айдишники, как Гугл и Яху.

                                    Сходу могу предложить loginza.ru, livejournal, liveinternet, wordpress, blogspot, но они требуют лишнего шага (регистрация e-mail + регистрация в сервисе).
                                    Ответить
                                    • Истинно так.

                                      Horse2, Horse3, Konardo были зарегистрированы на одноразовое мыло asdasd.ru, веб-морда которого прекрасно индексировалась поисковиками. Тупо по фразе "подтверждение регистрации на говнокод.ру" или типа того и были найдены эти учётки.

                                      Сейчас домен asdasd.ru продаётся. Можно попробовать выкупить и получить учётки от кучи сайтов.
                                      Ответить
                                      • Лети отсюда, петушок, и унеси с собой свои дешёвые понты. Улетай, улетай...
                                        Ответить
                                      • Если я выкуплю домен, то как я получу учетки, не зная на какие мейлы они были зарегистрированы?
                                        Ответить
                                        • Да, для восстановления пароля нужно точно знать емейл.

                                          Однако, если будешь владеть доменом, то можешь принимать ВСЮ почту, приходящую на него, в надежде, что сайты не прекратили регулярную рассылку (у почтовых серверов бывает так называемый catchall-ящик из коробки). Тогда в рассылках увидишь и емейлы. А в некоторых письмах можно поймать и ссылки для автологина.

                                          Главная проблема в том, что киберсквоттер слишком жадный:
                                          Мы занимаемся продажей доменов стоимостью от 1000 евро.
                                          Если бюджет на приобретение доменного имени составляет менее 1000 евро,
                                          просьба данную форму не заполнять, так как такие сообщения обрабатываться не будут.


                                          Так что придётся оставить надежду...
                                          Ответить
                                      • > Можно попробовать выкупить и получить учётки от кучи сайтов.
                                        А зачем? Ради анонимного общения(tm) или есть вероятность, что кто-то что-то ценное зарегистрировал (важный блог с 100К подписчиками или учётку на пэйпале)?
                                        Ответить
              • Подеревъянский - это все что ты знаешь на мове, говноеда кусок?
                Ответить

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

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8