1. Лучший говнокод

    В номинации:
    За время:
  2. C++ / Говнокод #9053

    +1000

    1. 1
    const double pi = acos(-1.0);

    В каждой посылке codeforces - участника shentianxiao.

    P.S. Он - китаец

    VisualPaul, 08 Января 2012

    Комментарии (27)
  3. C++ / Говнокод #8788

    +1006

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    99. 99
    const unsigned BAD_VALUE = (unsigned) -1;
    typedef pair<string, unsigned> RomeDecPair;
    typedef map<string, unsigned> Table;
    Table g_table;
     
    void InitTables()
    {
      g_table["I"] = 1;
      g_table["II"] = 2;
      g_table["III"] = 3;
      g_table["IV"] = 4;
      g_table["V"] = 5;
      g_table["VI"] = 6;
      g_table["VII"] = 7;
      g_table["VIII"] = 8;
      g_table["IX"] = 9;
      g_table["X"] = 10;
      g_table["XX"] = 20;
      g_table["XXX"] = 30;
      g_table["XL"] = 40;
      g_table["L"] = 50;
      g_table["XC"] = 90;
      g_table["C"] = 100;
      g_table["CC"] = 200;
      g_table["CCC"] = 300;
      g_table["CD"] = 400;
      g_table["D"] = 500;
      g_table["CM"] = 900;
      g_table["M"] = 1000;
      g_table["MM"] = 2000;
      g_table["MMM"] = 3000;
    }
    .....
    int main()
    {
      InitTables();
     
      vector<RomeDecPair> tests;
     
      tests.push_back(make_pair("I", 1));
      tests.push_back(make_pair("II", 2));
      tests.push_back(make_pair("III", 3));
      tests.push_back(make_pair("IV", 4));
      tests.push_back(make_pair("V", 5));
      tests.push_back(make_pair("VI", 6));
      tests.push_back(make_pair("VII", 7));
      tests.push_back(make_pair("VIII", 8));
      tests.push_back(make_pair("IX", 9));
      tests.push_back(make_pair("X", 10));
      tests.push_back(make_pair("XI", 11));
      tests.push_back(make_pair("XII", 12));
      tests.push_back(make_pair("XIII", 13));
      tests.push_back(make_pair("XIV", 14));
      tests.push_back(make_pair("XV", 15));
      tests.push_back(make_pair("XVI", 16));
      tests.push_back(make_pair("XVII", 17));
      tests.push_back(make_pair("XVIII", 18));
      tests.push_back(make_pair("XIX", 19));
      tests.push_back(make_pair("XX", 20));
      tests.push_back(make_pair("XXI", 21));
      tests.push_back(make_pair("XL", 40));
      tests.push_back(make_pair("XLII", 42));
      tests.push_back(make_pair("LIX", 59));
      tests.push_back(make_pair("LXXVII", 77));
      tests.push_back(make_pair("XC", 90));
      tests.push_back(make_pair("CX", 110));
      tests.push_back(make_pair("CDXCIX", 499));
      tests.push_back(make_pair("DLXXXIII", 583));
      tests.push_back(make_pair("DCCCLXXXVIII", 888));
      tests.push_back(make_pair("MDCLXVIII", 1668));
      tests.push_back(make_pair("MCMLXXXIX", 1989));
      tests.push_back(make_pair("MMMCMXCIX", 3999));
     
      tests.push_back(make_pair("", BAD_VALUE));
      tests.push_back(make_pair("IIIV", BAD_VALUE));
      tests.push_back(make_pair("IIV", BAD_VALUE));
      tests.push_back(make_pair("IIII", BAD_VALUE));
      tests.push_back(make_pair("IIX", BAD_VALUE));
      tests.push_back(make_pair("XIIII", BAD_VALUE));
      tests.push_back(make_pair("XIIIIX", BAD_VALUE));
      tests.push_back(make_pair("XIIIIX", BAD_VALUE));
      tests.push_back(make_pair("XXXX", BAD_VALUE));
      tests.push_back(make_pair("LL", BAD_VALUE));
      tests.push_back(make_pair("CLC", BAD_VALUE));
      tests.push_back(make_pair("CLL", BAD_VALUE));
      tests.push_back(make_pair("DLD", BAD_VALUE));
      tests.push_back(make_pair("LDD", BAD_VALUE));
      tests.push_back(make_pair("LLI", BAD_VALUE));
      tests.push_back(make_pair("MMMCMXCX", BAD_VALUE));
      tests.push_back(make_pair("AXX", BAD_VALUE));
      tests.push_back(make_pair("LXA", BAD_VALUE));
     
      for (vector<RomeDecPair>::const_iterator it = tests.begin(), end = tests.end(); it != end; ++it)
      {
        CheckConversion(*it);
      }
     
      return 0;
    }

    bugaga, 10 Декабря 2011

    Комментарии (27)
  4. Java / Говнокод #8593

    +80

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    Calendar startCal = Calendar.getInstance();
    startCal.setTime(DateUtils.truncateDateAndTimeToDateOnly(startDate));
    Date strtDt = startCal.getTime();
    
    Calendar endCal = Calendar.getInstance();
    endCal.setTime(DateUtils.truncateDateAndTimeToDateOnly(endDate));
    Date endDt = endCal.getTime();

    Далее по тексту strtDt и endDt используются ровно один раз, startCal и endCal не используются больше вообще. Утилитный метод возвращает требуемый экземпляр класса Date.

    roman-kashitsyn, 21 Ноября 2011

    Комментарии (27)
  5. JavaScript / Говнокод #8589

    +181

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    if ( FILM_COMEDIA ) {TEXT = "комедия"}
    if ( FILM_UJASTIC ) {TEXT = "ужастик"}
    if ( FILM_DRAMA ) {TEXT = "драма"}
    ....
    if ( FILM_COMEDIA ) {if ( FILM_DRAMA ) {TEXT = "комедия, драма"} }
    .....
    if ( FILM_MUSIC ) { if ( FILM_SEMEYNIY ) { if ( FILM_PORNO ) { TEXT = "музыкальный, семейный, эротика" } } }
    ...

    Проверка жанров фильма.

    noccc, 20 Ноября 2011

    Комментарии (27)
  6. C# / Говнокод #8439

    +124

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    public static DateTime Sec2Date( UInt32 time )
    {
    	UInt32[] days_per_month = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
    	int[] days_per_year = { 366, 365, 365, 365 };
    	UInt32 hour = (UInt32)((time / 3600) % 24);
    	UInt32 min = (UInt32)((time / 60) % 60);
    	UInt32 sec = (UInt32)(time % 60);
    	// в 4-х годах 1461 день, значит в 1 годе 1461/4=365.25 дней в среднем в году
    	//UInt32 year = (UInt32)(time / (24f * 3600f * 365.25));
    
    	int time_temp = (int)time;
    	int year_temp = 0;
    	do
    	{
    		time_temp -= 24 * 3600 * days_per_year[year_temp % 4];
    		year_temp++;
    	}
    	while ( time_temp > 0 );
    	int year = year_temp - 1;
    
    	// кол-во_секунд_с_начала_года = общее_кол-во_секунд - кол-во_секунд_до_начала_года_с_0_года
    	UInt32 sec_after_curr_year = time - Date2Sec( (int)year, 1, 1, 0, 0, 0 );
    	// кол-во дней, прошедших с начала года
    	UInt32 day = (UInt32)(sec_after_curr_year / (3600 * 24) + 1);
    	// день недели
    	UInt32 week = day % 7;
    	// в феврале високосного года делаем 29 дней
    	if ( 0 == (year % 4) )
    		days_per_month[1] = 29;
    	// из общего кол-во дней будем вычитать дни месяцев, получим месяц и день в месяце
    	UInt32 month = 0;
    	while ( day > days_per_month[month] ) day -= days_per_month[month++];
    	month++;
    	DateTime date = new DateTime( (int)(year + 2000), (int)month, (int)day, (int)hour, (int)min, (int)sec );
    	return date;
    }
    
    public static UInt32 Date2Sec( int Y, int M, int D, int hh, int mm, int ss )
    {
    	DateTime date = new DateTime( Y + 2000, M, D, hh, mm, ss );
    	return Date2Sec( date );
    }
    
    public static UInt32 Date2Sec( DateTime date )
    {
    	int[] days_per_month = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
    	int[] days_per_year = { 366, 365, 365, 365 };
    
    	UInt32 sec_monthes = 0;
    	for ( int i = 0; i < (date.Month - 1); i++ )
    		sec_monthes += (UInt32)(days_per_month[i] * 24 * 3600);
    	if ( (2 < date.Month) && (0 == (date.Year % 4)) )
    		sec_monthes += 24 * 3600;		// 29 февраля
    	UInt32 sec_days = (UInt32)((date.Day - 1) * 24 * 3600);
    	UInt32 sec_hours = (UInt32)(date.Hour * 3600);
    	UInt32 sec_minutes = (UInt32)(date.Minute * 60);
    	UInt32 sec_years = 0;
    	for ( int i = 0; i < (date.Year - 2000); i++ )
    		sec_years += (UInt32)(days_per_year[i % 4] * 24 * 3600);
    	UInt32 total_sec = (UInt32)(sec_years + sec_monthes + sec_days + sec_hours + sec_minutes + date.Second);
    	return total_sec;
    }

    Время измеряется в секундах, прошедших с 00:00:00 01.01.2000.

    ivan-petrov, 07 Ноября 2011

    Комментарии (27)
  7. PHP / Говнокод #8356

    +182

    1. 1
    2. 2
    <?php echo "<html> <head> <meta http-equiv='Content-Type' content='text/html; charset=windows-1251'> <title>$PAGE_TITLE</title> </head> <body> <table border='0' cellpadding='0' cellspacing='0' style='border-collapse: collapse' bordercolor='#111111' width='100%' id='AutoNumber1'> <tr> <td width='100%' colspan='2' bgcolor='#DDFFFF'> <p align='center'>здесь выводится шапка</td> </tr> <tr> <td width='17%' align='left' valign='top' bgcolor='#FFDFFF'> <b>Меню сайта</b><p> <b>-</b><a href='index.php?mod=mod1'>Модуль1</a> <br> - <a href='index.php?mod=mod2'>Модуль2</a></td> <td width='83%' align='left' valign='top'>"; ?>
    // Предвижу комментарии, где скажут, почему я не вывожу HTML код отдельно, а php отдельно. Я приучил себя к написанию 100% PHP кода

    Хоть это и из статьи 2006 года , но всё равно кажется бредом .

    Error, 30 Октября 2011

    Комментарии (27)
  8. Ruby / Говнокод #8198

    −94

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    def format_price price, delimeter = ' '
      s, i = price.to_s.reverse, 0
      Array.new(s.size) do |n|
        c = n.zero? ? '' : ((i += 1) % 3).zero? ? delimeter.to_s : ''
        c + s[n, 1]
      end.join.reverse
    end

    10000 -> "10 000"
    Как такое вообще принято делать между ровными пацанами?

    LeshaXakir, 14 Октября 2011

    Комментарии (27)
  9. Objective C / Говнокод #8104

    −111

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    for (int i = 0; i < [select count]; i++) {
                        NSIndexPath *iPath = [select objectAtIndex:i];
                        if (iPath.section == 0) {
                            business = iPath.row;
                        }
                    }
                    
                    for (int i = 0; i < [select count]; i++) {
                        NSIndexPath *iPath = [select objectAtIndex:i];
                        if (iPath.section == 1) {
                            company = iPath.row;
                        }
                    }
                    
                    for (int i = 0; i < [select count]; i++) {
                        NSIndexPath *iPath = [select objectAtIndex:i];
                        if (iPath.section == 2) {
                            turnover = iPath.row;
                        }

    Cкажите дети, сколько раз вызовется [count] за время исполнения участка кода, выведете формулу по которой решается задача.

    Psionic, 06 Октября 2011

    Комментарии (27)
  10. Java / Говнокод #8005

    +71

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    if (prodAttainment < payeeSalesGoal)
    {
    	cashComp = 1;
    }
    else if (prodAttainment < 1.25 * payeeSalesGoal
    		&& prodAttainment >= payeeSalesGoal)
    {
    	cashComp = 0.75;
    }
    else if (prodAttainment >= 1.25 * payeeSalesGoal)
    {
    	cashComp = 0.5;
    }

    Меня гнет или и правда нужно столько проверок? Чтоб наверняка...

    askell, 27 Сентября 2011

    Комментарии (27)
  11. 1C / Говнокод #7998

    −160

    1. 1
    Номенклатура

    Слово гадкое, не то что программа.

    alexoy, 27 Сентября 2011

    Комментарии (27)