Advertisement
GrandtherAzaMarks

The Worst Code ever(LKSH/2018/Mike&Sweets)

Apr 18th, 2018
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.09 KB | None | 0 0
  1. namespace Useless
  2. {
  3.     class MainClass
  4.     {
  5.         public static void Main(string[] args)
  6.         {
  7.             int ЧиСлОэЛеМеНтОв = System.Convert.ToInt32(System.Console.ReadLine());
  8.             int[] КоЛиЧеСтВоШаГоВ, РоДиТеЛеЙнЕтРоШтВеРдЫйЗнАк;
  9.             КоЛиЧеСтВоШаГоВ = new int[ЧиСлОэЛеМеНтОв + 1];
  10.             РоДиТеЛеЙнЕтРоШтВеРдЫйЗнАк = new int[ЧиСлОэЛеМеНтОв + 1];
  11.             for (int и = 0; и <= ЧиСлОэЛеМеНтОв; и++)
  12.             {
  13.                 КоЛиЧеСтВоШаГоВ[и] = ЧиСлОэЛеМеНтОв + 1;
  14.                 РоДиТеЛеЙнЕтРоШтВеРдЫйЗнАк[и] = -1;
  15.             }
  16.                
  17.             КоЛиЧеСтВоШаГоВ[1] = 0;
  18.             int НоМеР = 1;
  19.             while (НоМеР <= ЧиСлОэЛеМеНтОв)
  20.             {
  21.                 int ДеЛиТеЛь = 1;
  22.                 for (ulong i = 0; i < System.UInt64.MaxValue; i++)
  23.                 {
  24.                     if (ДеЛиТеЛь * 2 <= НоМеР && НоМеР + ДеЛиТеЛь <= ЧиСлОэЛеМеНтОв)
  25.                     {
  26.                         if (НоМеР % ДеЛиТеЛь == 0 && КоЛиЧеСтВоШаГоВ[НоМеР] + 1 <= КоЛиЧеСтВоШаГоВ[НоМеР + ДеЛиТеЛь])
  27.                         {
  28.  
  29.                             КоЛиЧеСтВоШаГоВ[НоМеР + ДеЛиТеЛь] = КоЛиЧеСтВоШаГоВ[НоМеР] + 1;
  30.                             РоДиТеЛеЙнЕтРоШтВеРдЫйЗнАк[НоМеР + ДеЛиТеЛь] = НоМеР;
  31.                         }
  32.                         ДеЛиТеЛь = 1 + ДеЛиТеЛь;
  33.                     }
  34.                     else
  35.                         break;
  36.                 }
  37.                 if (2 * НоМеР <= ЧиСлОэЛеМеНтОв && КоЛиЧеСтВоШаГоВ[НоМеР] + 1 <= КоЛиЧеСтВоШаГоВ[2 * НоМеР])
  38.                 {
  39.                     КоЛиЧеСтВоШаГоВ[2 * НоМеР] = КоЛиЧеСтВоШаГоВ[НоМеР] + 1;
  40.                     РоДиТеЛеЙнЕтРоШтВеРдЫйЗнАк[2 * НоМеР] = НоМеР;
  41.                 }
  42.                 НоМеР = 2 + НоМеР - 1;
  43.             }
  44.             НоМеР = 1;
  45.             НоМеР = ЧиСлОэЛеМеНтОв;
  46.             System.Collections.ArrayList вспомогательный = new System.Collections.ArrayList();
  47.             while (РоДиТеЛеЙнЕтРоШтВеРдЫйЗнАк[НоМеР] != -1)
  48.             {
  49.                 вспомогательный.Add(НоМеР - РоДиТеЛеЙнЕтРоШтВеРдЫйЗнАк[НоМеР]);
  50.                 НоМеР = РоДиТеЛеЙнЕтРоШтВеРдЫйЗнАк[НоМеР];
  51.             }
  52.             System.Console.WriteLine(вспомогательный.Count);
  53.             foreach (int и in вспомогательный)
  54.                 System.Console.Write(и + " ");
  55.         }
  56.     }
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement