-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathProblemB.cs
114 lines (97 loc) · 2.56 KB
/
ProblemB.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
using System;
using System.IO;
/// <summary>
/// @author: jaracoder
/// @date: 08/04/2017
///
/// Tidy Numbers.
/// Problem B - Qualification Round 2017 - Google Code Jam
/// </summary>
///
namespace GoogleCodeJam17
{
public class ProblemB
{
static int totalCases;
static string inputFile = "B-large.in";
static string[] inputLines = null;
static string outputFile = "solved.in";
static string[] outputLines = null;
static void Main()
{
try
{
inputLines = GetLinesFromFile();
totalCases = Int32.Parse(inputLines[0]);
outputLines = new string[totalCases];
string number;
for (int i = 1; i < inputLines.Length; i++)
{
number = inputLines[i];
while (!IsTidy(number))
{
number = (Convert.ToInt64(number) - 1).ToString();
}
outputLines[i - 1] = "Case #" + i + ": " + number;
}
SaveLinesOnFile(outputLines);
}
catch
{
}
}
/// <summary>
/// Check if it's a tidy number
/// </summary>
static bool IsTidy(string number)
{
if (number.Length == 1)
return true;
for (int i = 0; i < number.Length; i++)
{
if (i == number.Length - 1)
{
if (number[i] < number[i - 1])
{
return false;
}
}
else
{
if (number[i] > number[i + 1])
{
return false;
}
}
}
return true;
}
/// <summary>
/// Gets all lines of a text file.
/// </summary>
static string[] GetLinesFromFile()
{
string[] lines;
try
{
lines = File.ReadAllLines(inputFile);
}
catch
{
lines = null;
}
return lines;
}
/// <summary>
/// Gets all lines of a text file.
/// </summary>
static void SaveLinesOnFile(string[] lines)
{
try
{
File.WriteAllLines(outputFile, lines);
}
catch { }
}
}
}