Check out the Pastebin Gadgets Shop. We have thousands of fun, geeky & affordable gadgets on sale :-)Want more features on Pastebin? Sign Up, it's FREE!
tweet

# Untitled

By: a guest on Apr 14th, 2012  |  syntax: C#  |  size: 2.72 KB  |  views: 40  |  expires: Never
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
1. using System;
2. using System.Collections.Generic;
3. using System.Linq;
4. using System.Text;
5. using System.IO;
6.
7. namespace Problem_2
8. {
9.     class Program
10.     {
11.         static void Main( string[] args )
12.         {
13.             string[] lines = File.ReadAllLines( "input.txt" );
14.             int cases = Int32.Parse( lines[0] );
15.             string output = "";
16.
17.             for ( int i = 1; i < lines.Length; i++ )
18.             {
19.                 output += "Case #" + i + ": " + Solve( lines[i].Split( ' ' ) ) + "\r\n";
20.             }
21.
22.             File.WriteAllText( "output.txt", output );
23.         }
24.
25.         static int Solve( string[] rawData )
26.         {
27.             int[] scores = new int[rawData.Length - 3];
28.             for ( int i = 3; i < rawData.Length; i++ )
29.                 scores[i - 3] = Int32.Parse( rawData[i] );
30.             int googlers = Int32.Parse( rawData[0] );
31.             int triplets = Int32.Parse( rawData[1] );
32.             int best = Int32.Parse( rawData[2] );
33.
35.
36.             for ( int i = 0; i < scores.Length; i++ )
37.             {
38.                 // First try without triplets
39.                 for ( int s1 = 0; s1 <= 10; s1++ )
40.                     for ( int s2 = 0; s2 <= 10; s2++ )
41.                         for ( int s3 = 0; s3 <= 10; s3++ )
42.                         {
43.                             int sum = s1 + s2 + s3;
44.                             if ( sum != scores[i] ) continue;
45.                             if ( Math.Abs( s1 - s2 ) > 1 || Math.Abs( s2 - s3 ) > 1 || Math.Abs( s3 - s1 ) > 1 ) continue;
46.
47.                             if ( s1 == best || s2 == best || s3 == best )
48.                             {
50.                                 goto next;
51.                             }
52.                         }
53.
54.                 // Then attempt WITH triplets
55.                 for ( int s1 = 0; s1 <= 10; s1++ )
56.                     for ( int s2 = 0; s2 <= 10; s2++ )
57.                         for ( int s3 = 0; s3 <= 10; s3++ )
58.                         {
59.                             int sum = s1 + s2 + s3;
60.                             if ( sum != scores[i] ) continue;
61.                             if ( ( Math.Abs( s1 - s2 ) > 1 || Math.Abs( s2 - s3 ) > 1 || Math.Abs( s3 - s1 ) > 1 ) && triplets == 0 ) continue;
62.
63.                             if ( s1 == best || s2 == best || s3 == best )
64.                             {
66.                                 triplets--;
67.                                 goto next;
68.                             }
69.                         }
70.
71.             next:
72.                 continue;
73.             }
74.
76.         }
77.     }
78. }
clone this paste RAW Paste Data
Top