Advertisement
Guest User

Untitled

a guest
Mar 1st, 2015
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.63 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Numerics;
  7.  
  8. namespace _02BunnyFactory
  9. {
  10.     class Program
  11.     {
  12.         static void Main()
  13.         {
  14.             List<int> input = new List<int>();
  15.             string line = Console.ReadLine();
  16.  
  17.  
  18.             while (line != "END")
  19.             {
  20.                 input.Add(int.Parse(line));
  21.                 line = Console.ReadLine();
  22.             }
  23.  
  24.  
  25.             input.Reverse();
  26.  
  27.  
  28.             //for (int cages = input.Count - 1; cages >= 0; cages--)
  29.             //{
  30.             //    if (shouldBreak)
  31.             //    {
  32.             //        break;
  33.             //    }
  34.             for (int process = 1; process < input.Count; process++)
  35.             {
  36.                 int sum = 0;
  37.                 int s = 0;
  38.                 BigInteger product = 1;
  39.  
  40.                 for (int i = input.Count - 1; i >= input.Count - process; i--)
  41.                 {
  42.                     sum += input[i];
  43.                 }
  44.                 if (input.Count < sum + process)
  45.                 {
  46.                     break;
  47.                 }
  48.  
  49.                 for (int step = input.Count - process - 1; step >= input.Count - process - sum; step--)
  50.                 {
  51.                     s += input[step];
  52.                     product *= input[step];
  53.                 }
  54.  
  55.                 input.RemoveRange(input.Count - process - sum, process + sum);
  56.  
  57.                 do
  58.                 {
  59.                     int remainder = (int)(product % 10);
  60.                     if (remainder != 0 && remainder != 1)
  61.                     {
  62.                         input.Add(remainder);
  63.                     }
  64.                     product /= 10;
  65.                 }
  66.                 while (product > 0);
  67.  
  68.                 do
  69.                 {
  70.                     int remainder = s % 10;
  71.                     if (remainder != 0 && remainder != 1)
  72.                     {
  73.                         input.Add(remainder);
  74.                     }
  75.                     s /= 10;
  76.                 }
  77.                 while (s > 0);
  78.  
  79.                 do
  80.                 {
  81.                     input.Remove(1);
  82.                 }
  83.                 while (input.Contains(1));
  84.  
  85.                 do
  86.                 {
  87.                     input.Remove(0);
  88.                 }
  89.                 while (input.Contains(0));
  90.             }
  91.             //}
  92.  
  93.             input.Reverse();
  94.  
  95.             for (int i = 0; i < input.Count; i++)
  96.             {
  97.                 Console.Write(input[i]  + " ");
  98.             }
  99.  
  100.             Console.WriteLine();
  101.         }
  102.     }
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement