Advertisement
Guest User

Cooking The Books

a guest
Jan 11th, 2015
255
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.08 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. class CookingTheBooks
  4. {
  5.     static int countOfNumbers;
  6.     static int[] digits;
  7.     static int min = int.MaxValue;
  8.     static int max = 0;
  9.  
  10.     static void Main()
  11.     {
  12.         countOfNumbers = int.Parse(Console.ReadLine());
  13.  
  14.         string[] numbers = new string[countOfNumbers];
  15.  
  16.         for (int index = 0; index < countOfNumbers; index++)
  17.         {
  18.             numbers[index] = Console.ReadLine();
  19.         }
  20.  
  21.         for (int index = 0; index < numbers.Length; index++)
  22.         {
  23.             digits = new int[numbers[index].Length];
  24.             for (int digit = 0; digit < numbers[index].Length; digit++)
  25.             {
  26.                 digits[digit] = int.Parse(numbers[index][digit].ToString());
  27.             }
  28.  
  29.             fudgeNumber();
  30.             Console.WriteLine("Case #{0}: {1} {2}", index + 1, min, max);
  31.             min = int.MaxValue;
  32.             max = 0;
  33.         }
  34.     }
  35.  
  36.     private static void fudgeNumber()
  37.     {
  38.         if (digits.Length == 1)
  39.         {
  40.             min = digits[0];
  41.             max = digits[0];
  42.             return;
  43.         }
  44.  
  45.         checkOutput();
  46.  
  47.         for (int firstDigit = 0; firstDigit < digits.Length - 1; firstDigit++)
  48.         {
  49.             for (int secondDigit = firstDigit + 1; secondDigit < digits.Length; secondDigit++)
  50.             {
  51.                 swap(ref digits[firstDigit], ref digits[secondDigit]);
  52.  
  53.                 checkOutput();
  54.  
  55.                 swap(ref digits[firstDigit], ref digits[secondDigit]);
  56.             }
  57.         }
  58.     }
  59.  
  60.     private static void checkOutput()
  61.     {
  62.         string result = String.Join("", digits);
  63.         if (digits[0] != 0)
  64.         {
  65.             int number = int.Parse(result);
  66.             if (max < number)
  67.             {
  68.                 max = number;
  69.             }
  70.  
  71.             if (min > number)
  72.             {
  73.                 min = number;
  74.             }
  75.         }
  76.     }
  77.  
  78.     private static void swap(ref int first, ref int second)
  79.     {
  80.         int temp = first;
  81.         first = second;
  82.         second = temp;
  83.     }
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement