[2k25] Add day 9
This commit is contained in:
192
Days/Day9.cs
Normal file
192
Days/Day9.cs
Normal file
@@ -0,0 +1,192 @@
|
|||||||
|
using Spectre.Console;
|
||||||
|
|
||||||
|
namespace AdventOfCode.Days;
|
||||||
|
|
||||||
|
public class Day9 : Day
|
||||||
|
{
|
||||||
|
public override int Number => 9;
|
||||||
|
public override string Name => "Movie Theater";
|
||||||
|
|
||||||
|
public override void RunPart1(bool display = true)
|
||||||
|
{
|
||||||
|
var tilePositions = ParseTilePositions(Input);
|
||||||
|
|
||||||
|
var maxArea = 0L;
|
||||||
|
|
||||||
|
for (var firstIndex = 0; firstIndex < tilePositions.Count - 1; firstIndex++)
|
||||||
|
{
|
||||||
|
for (var secondIndex = firstIndex + 1; secondIndex < tilePositions.Count; secondIndex++)
|
||||||
|
{
|
||||||
|
var firstTile = tilePositions[firstIndex];
|
||||||
|
var secondTile = tilePositions[secondIndex];
|
||||||
|
|
||||||
|
var area = (Math.Abs(secondTile.I - firstTile.I) + 1) *
|
||||||
|
(Math.Abs(secondTile.J - firstTile.J) + 1);
|
||||||
|
|
||||||
|
if (area > maxArea)
|
||||||
|
{
|
||||||
|
maxArea = area;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (display)
|
||||||
|
{
|
||||||
|
AnsiConsole.MarkupLine($"[green]Max tile area is: [yellow]{maxArea}[/][/]");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void RunPart2(bool display = true)
|
||||||
|
{
|
||||||
|
var tilePositions = ParseTilePositions(Input);
|
||||||
|
|
||||||
|
// Make a list of possible areas in descending order
|
||||||
|
var tileAreas = new List<TileArea>();
|
||||||
|
|
||||||
|
for (var firstIndex = 0; firstIndex < tilePositions.Count - 1; firstIndex++)
|
||||||
|
{
|
||||||
|
for (var secondIndex = firstIndex + 1; secondIndex < tilePositions.Count; secondIndex++)
|
||||||
|
{
|
||||||
|
var firstTile = tilePositions[firstIndex];
|
||||||
|
var secondTile = tilePositions[secondIndex];
|
||||||
|
|
||||||
|
var area = (Math.Abs(secondTile.I - firstTile.I) + 1) *
|
||||||
|
(Math.Abs(secondTile.J - firstTile.J) + 1);
|
||||||
|
|
||||||
|
tileAreas.Add(new TileArea(firstTile, secondTile, area));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sort list in descending order (biggest area first)
|
||||||
|
tileAreas.Sort((left, right) => right.Area.CompareTo(left.Area));
|
||||||
|
|
||||||
|
// Compute polygon bounds with green tiles
|
||||||
|
var jBoundsAtI = new Dictionary<long, PositionBounds>();
|
||||||
|
var iBoundsAtJ = new Dictionary<long, PositionBounds>();
|
||||||
|
foreach (var (firstTile, secondTile) in tilePositions.Zip(tilePositions.Skip(1).Append(tilePositions[0])))
|
||||||
|
{
|
||||||
|
// Tiles are on same line, set bounds for columns (j)
|
||||||
|
if (firstTile.I == secondTile.I)
|
||||||
|
{
|
||||||
|
var start = Math.Min(firstTile.J, secondTile.J);
|
||||||
|
var end = Math.Max(firstTile.J, secondTile.J);
|
||||||
|
|
||||||
|
for (var j = start; j <= end; j++)
|
||||||
|
{
|
||||||
|
// Update bounds
|
||||||
|
if (iBoundsAtJ.TryGetValue(j, out var bounds))
|
||||||
|
{
|
||||||
|
iBoundsAtJ[j] = new PositionBounds(
|
||||||
|
Math.Min(firstTile.I, bounds.Min),
|
||||||
|
Math.Max(firstTile.I, bounds.Max)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
iBoundsAtJ[j] = new PositionBounds(
|
||||||
|
firstTile.I,
|
||||||
|
firstTile.I
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Tiles are on same column, set bounds for rows (i)
|
||||||
|
else if (firstTile.J == secondTile.J)
|
||||||
|
{
|
||||||
|
var start = Math.Min(firstTile.I, secondTile.I);
|
||||||
|
var end = Math.Max(firstTile.I, secondTile.I);
|
||||||
|
|
||||||
|
for (var i = start; i<= end; i++)
|
||||||
|
{
|
||||||
|
// Update bounds
|
||||||
|
if (jBoundsAtI.TryGetValue(i, out var bounds))
|
||||||
|
{
|
||||||
|
jBoundsAtI[i] = new PositionBounds(
|
||||||
|
Math.Min(firstTile.J, bounds.Min),
|
||||||
|
Math.Max(firstTile.J, bounds.Max)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
jBoundsAtI[i] = new PositionBounds(
|
||||||
|
firstTile.J,
|
||||||
|
firstTile.J
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Find the first area that is valid (composed of green or red tiles)
|
||||||
|
var maxValidArea = -1L;
|
||||||
|
foreach (var tileArea in tileAreas)
|
||||||
|
{
|
||||||
|
// For each point in this area, check if it is within bounds
|
||||||
|
var iStart = Math.Min(tileArea.First.I, tileArea.Second.I);
|
||||||
|
var iEnd = Math.Max(tileArea.First.I, tileArea.Second.I);
|
||||||
|
|
||||||
|
var jStart = Math.Min(tileArea.First.J, tileArea.Second.J);
|
||||||
|
var jEnd = Math.Max(tileArea.First.J, tileArea.Second.J);
|
||||||
|
|
||||||
|
// Check if any point is out of bounds
|
||||||
|
var outOfBounds = false;
|
||||||
|
for (var i = iStart; i <= iEnd; i++)
|
||||||
|
{
|
||||||
|
for (var j = jStart; j <= jEnd; j++)
|
||||||
|
{
|
||||||
|
var iBound = iBoundsAtJ[j];
|
||||||
|
var jBound = jBoundsAtI[i];
|
||||||
|
|
||||||
|
if (i < iBound.Min || i > iBound.Max ||
|
||||||
|
j < jBound.Min || j > jBound.Max)
|
||||||
|
{
|
||||||
|
outOfBounds = true;
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (outOfBounds)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// If no points are out of bounds, we have our biggest valid area
|
||||||
|
if (!outOfBounds)
|
||||||
|
{
|
||||||
|
maxValidArea = tileArea.Area;
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (display)
|
||||||
|
{
|
||||||
|
AnsiConsole.MarkupLine($"[green]Max valid tile area is: [yellow]{maxValidArea}[/][/]");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static List<TilePosition> ParseTilePositions(string input)
|
||||||
|
{
|
||||||
|
var tilePositions = new List<TilePosition>();
|
||||||
|
|
||||||
|
foreach (var line in input.EnumerateLines())
|
||||||
|
{
|
||||||
|
var splitIndex = line.IndexOf(',');
|
||||||
|
|
||||||
|
var j = long.Parse(line[..splitIndex]);
|
||||||
|
var i = long.Parse(line[(splitIndex + 1)..]);
|
||||||
|
|
||||||
|
tilePositions.Add(new TilePosition(i, j));
|
||||||
|
}
|
||||||
|
|
||||||
|
return tilePositions;
|
||||||
|
}
|
||||||
|
|
||||||
|
private record TilePosition(long I, long J);
|
||||||
|
|
||||||
|
private record TileArea(TilePosition First, TilePosition Second, long Area);
|
||||||
|
|
||||||
|
private record PositionBounds(long Min, long Max);
|
||||||
|
}
|
||||||
496
Inputs/Day9.txt
Normal file
496
Inputs/Day9.txt
Normal file
@@ -0,0 +1,496 @@
|
|||||||
|
97585,50248
|
||||||
|
97585,51467
|
||||||
|
98011,51467
|
||||||
|
98011,52664
|
||||||
|
97624,52664
|
||||||
|
97624,53893
|
||||||
|
97833,53893
|
||||||
|
97833,55069
|
||||||
|
97390,55069
|
||||||
|
97390,56345
|
||||||
|
97829,56345
|
||||||
|
97829,57524
|
||||||
|
97460,57524
|
||||||
|
97460,58782
|
||||||
|
97572,58782
|
||||||
|
97572,59956
|
||||||
|
97198,59956
|
||||||
|
97198,61016
|
||||||
|
96374,61016
|
||||||
|
96374,62214
|
||||||
|
96181,62214
|
||||||
|
96181,63484
|
||||||
|
96212,63484
|
||||||
|
96212,64456
|
||||||
|
95248,64456
|
||||||
|
95248,65667
|
||||||
|
95066,65667
|
||||||
|
95066,67043
|
||||||
|
95291,67043
|
||||||
|
95291,68196
|
||||||
|
94873,68196
|
||||||
|
94873,69349
|
||||||
|
94448,69349
|
||||||
|
94448,70107
|
||||||
|
93166,70107
|
||||||
|
93166,71163
|
||||||
|
92581,71163
|
||||||
|
92581,72635
|
||||||
|
92788,72635
|
||||||
|
92788,73416
|
||||||
|
91675,73416
|
||||||
|
91675,74627
|
||||||
|
91340,74627
|
||||||
|
91340,75665
|
||||||
|
90702,75665
|
||||||
|
90702,76625
|
||||||
|
89944,76625
|
||||||
|
89944,77509
|
||||||
|
89088,77509
|
||||||
|
89088,78597
|
||||||
|
88521,78597
|
||||||
|
88521,79776
|
||||||
|
88055,79776
|
||||||
|
88055,80561
|
||||||
|
87084,80561
|
||||||
|
87084,81419
|
||||||
|
86215,81419
|
||||||
|
86215,82395
|
||||||
|
85482,82395
|
||||||
|
85482,83317
|
||||||
|
84685,83317
|
||||||
|
84685,84019
|
||||||
|
83666,84019
|
||||||
|
83666,84810
|
||||||
|
82745,84810
|
||||||
|
82745,85843
|
||||||
|
82045,85843
|
||||||
|
82045,86820
|
||||||
|
81277,86820
|
||||||
|
81277,87497
|
||||||
|
80251,87497
|
||||||
|
80251,88494
|
||||||
|
79477,88494
|
||||||
|
79477,88593
|
||||||
|
78030,88593
|
||||||
|
78030,89634
|
||||||
|
77280,89634
|
||||||
|
77280,89943
|
||||||
|
76026,89943
|
||||||
|
76026,90526
|
||||||
|
74967,90526
|
||||||
|
74967,91920
|
||||||
|
74383,91920
|
||||||
|
74383,91768
|
||||||
|
72899,91768
|
||||||
|
72899,92395
|
||||||
|
71864,92395
|
||||||
|
71864,93277
|
||||||
|
70949,93277
|
||||||
|
70949,93688
|
||||||
|
69798,93688
|
||||||
|
69798,94241
|
||||||
|
68712,94241
|
||||||
|
68712,94401
|
||||||
|
67468,94401
|
||||||
|
67468,95078
|
||||||
|
66428,95078
|
||||||
|
66428,95669
|
||||||
|
65344,95669
|
||||||
|
65344,95733
|
||||||
|
64087,95733
|
||||||
|
64087,96248
|
||||||
|
62972,96248
|
||||||
|
62972,96251
|
||||||
|
61718,96251
|
||||||
|
61718,96888
|
||||||
|
60623,96888
|
||||||
|
60623,97184
|
||||||
|
59440,97184
|
||||||
|
59440,97469
|
||||||
|
58252,97469
|
||||||
|
58252,97411
|
||||||
|
57010,97411
|
||||||
|
57010,97271
|
||||||
|
55770,97271
|
||||||
|
55770,97969
|
||||||
|
54625,97969
|
||||||
|
54625,97509
|
||||||
|
53368,97509
|
||||||
|
53368,97865
|
||||||
|
52177,97865
|
||||||
|
52177,98329
|
||||||
|
50972,98329
|
||||||
|
50972,97669
|
||||||
|
49751,97669
|
||||||
|
49751,98319
|
||||||
|
48523,98319
|
||||||
|
48523,97525
|
||||||
|
47341,97525
|
||||||
|
47341,98287
|
||||||
|
46069,98287
|
||||||
|
46069,97717
|
||||||
|
44896,97717
|
||||||
|
44896,97342
|
||||||
|
43719,97342
|
||||||
|
43719,97436
|
||||||
|
42479,97436
|
||||||
|
42479,97459
|
||||||
|
41237,97459
|
||||||
|
41237,96815
|
||||||
|
40124,96815
|
||||||
|
40124,96681
|
||||||
|
38910,96681
|
||||||
|
38910,96602
|
||||||
|
37673,96602
|
||||||
|
37673,96208
|
||||||
|
36516,96208
|
||||||
|
36516,96041
|
||||||
|
35290,96041
|
||||||
|
35290,95193
|
||||||
|
34288,95193
|
||||||
|
34288,95385
|
||||||
|
32921,95385
|
||||||
|
32921,94861
|
||||||
|
31808,94861
|
||||||
|
31808,94399
|
||||||
|
30671,94399
|
||||||
|
30671,93112
|
||||||
|
29918,93112
|
||||||
|
29918,92913
|
||||||
|
28671,92913
|
||||||
|
28671,92119
|
||||||
|
27718,92119
|
||||||
|
27718,91442
|
||||||
|
26713,91442
|
||||||
|
26713,90915
|
||||||
|
25626,90915
|
||||||
|
25626,90593
|
||||||
|
24402,90593
|
||||||
|
24402,90340
|
||||||
|
23110,90340
|
||||||
|
23110,89440
|
||||||
|
22241,89440
|
||||||
|
22241,88276
|
||||||
|
21584,88276
|
||||||
|
21584,88126
|
||||||
|
20168,88126
|
||||||
|
20168,87236
|
||||||
|
19312,87236
|
||||||
|
19312,86576
|
||||||
|
18267,86576
|
||||||
|
18267,85553
|
||||||
|
17540,85553
|
||||||
|
17540,84543
|
||||||
|
16818,84543
|
||||||
|
16818,84064
|
||||||
|
15578,84064
|
||||||
|
15578,82797
|
||||||
|
15134,82797
|
||||||
|
15134,82017
|
||||||
|
14188,82017
|
||||||
|
14188,81332
|
||||||
|
13114,81332
|
||||||
|
13114,80221
|
||||||
|
12539,80221
|
||||||
|
12539,79343
|
||||||
|
11679,79343
|
||||||
|
11679,78473
|
||||||
|
10797,78473
|
||||||
|
10797,77118
|
||||||
|
10600,77118
|
||||||
|
10600,76172
|
||||||
|
9833,76172
|
||||||
|
9833,75371
|
||||||
|
8818,75371
|
||||||
|
8818,74320
|
||||||
|
8188,74320
|
||||||
|
8188,73033
|
||||||
|
7986,73033
|
||||||
|
7986,72180
|
||||||
|
6992,72180
|
||||||
|
6992,70709
|
||||||
|
7218,70709
|
||||||
|
7218,69965
|
||||||
|
5942,69965
|
||||||
|
5942,68792
|
||||||
|
5570,68792
|
||||||
|
5570,67655
|
||||||
|
5122,67655
|
||||||
|
5122,66576
|
||||||
|
4514,66576
|
||||||
|
4514,65236
|
||||||
|
4651,65236
|
||||||
|
4651,64191
|
||||||
|
3928,64191
|
||||||
|
3928,62832
|
||||||
|
4250,62832
|
||||||
|
4250,61676
|
||||||
|
3913,61676
|
||||||
|
3913,60666
|
||||||
|
2919,60666
|
||||||
|
2919,59414
|
||||||
|
2946,59414
|
||||||
|
2946,58189
|
||||||
|
2892,58189
|
||||||
|
2892,56982
|
||||||
|
2777,56982
|
||||||
|
2777,55788
|
||||||
|
2574,55788
|
||||||
|
2574,54613
|
||||||
|
2155,54613
|
||||||
|
2155,53375
|
||||||
|
2393,53375
|
||||||
|
2393,52161
|
||||||
|
2489,52161
|
||||||
|
2489,50972
|
||||||
|
1685,50972
|
||||||
|
1685,50233
|
||||||
|
94693,50233
|
||||||
|
94693,48547
|
||||||
|
2466,48547
|
||||||
|
2466,47345
|
||||||
|
2551,47345
|
||||||
|
2551,46084
|
||||||
|
1904,46084
|
||||||
|
1904,44845
|
||||||
|
1813,44845
|
||||||
|
1813,43720
|
||||||
|
2666,43720
|
||||||
|
2666,42503
|
||||||
|
2716,42503
|
||||||
|
2716,41195
|
||||||
|
2312,41195
|
||||||
|
2312,39998
|
||||||
|
2589,39998
|
||||||
|
2589,38961
|
||||||
|
3533,38961
|
||||||
|
3533,37735
|
||||||
|
3628,37735
|
||||||
|
3628,36546
|
||||||
|
3891,36546
|
||||||
|
3891,35426
|
||||||
|
4385,35426
|
||||||
|
4385,34229
|
||||||
|
4636,34229
|
||||||
|
4636,33077
|
||||||
|
5030,33077
|
||||||
|
5030,31900
|
||||||
|
5365,31900
|
||||||
|
5365,30944
|
||||||
|
6227,30944
|
||||||
|
6227,29769
|
||||||
|
6568,29769
|
||||||
|
6568,28433
|
||||||
|
6606,28433
|
||||||
|
6606,27418
|
||||||
|
7313,27418
|
||||||
|
7313,26275
|
||||||
|
7777,26275
|
||||||
|
7777,25552
|
||||||
|
8961,25552
|
||||||
|
8961,24577
|
||||||
|
9683,24577
|
||||||
|
9683,23129
|
||||||
|
9687,23129
|
||||||
|
9687,22300
|
||||||
|
10641,22300
|
||||||
|
10641,21279
|
||||||
|
11313,21279
|
||||||
|
11313,20286
|
||||||
|
12023,20286
|
||||||
|
12023,19683
|
||||||
|
13213,19683
|
||||||
|
13213,18319
|
||||||
|
13483,18319
|
||||||
|
13483,17693
|
||||||
|
14613,17693
|
||||||
|
14613,16947
|
||||||
|
15590,16947
|
||||||
|
15590,16218
|
||||||
|
16569,16218
|
||||||
|
16569,15163
|
||||||
|
17229,15163
|
||||||
|
17229,14557
|
||||||
|
18313,14557
|
||||||
|
18313,13183
|
||||||
|
18725,13183
|
||||||
|
18725,12585
|
||||||
|
19816,12585
|
||||||
|
19816,12148
|
||||||
|
21015,12148
|
||||||
|
21015,11048
|
||||||
|
21709,11048
|
||||||
|
21709,10762
|
||||||
|
22992,10762
|
||||||
|
22992,9767
|
||||||
|
23784,9767
|
||||||
|
23784,9322
|
||||||
|
24939,9322
|
||||||
|
24939,8676
|
||||||
|
25963,8676
|
||||||
|
25963,7514
|
||||||
|
26707,7514
|
||||||
|
26707,7778
|
||||||
|
28224,7778
|
||||||
|
28224,6471
|
||||||
|
28929,6471
|
||||||
|
28929,5994
|
||||||
|
30058,5994
|
||||||
|
30058,5415
|
||||||
|
31142,5415
|
||||||
|
31142,5016
|
||||||
|
32302,5016
|
||||||
|
32302,5001
|
||||||
|
33600,5001
|
||||||
|
33600,4185
|
||||||
|
34606,4185
|
||||||
|
34606,4274
|
||||||
|
35915,4274
|
||||||
|
35915,4067
|
||||||
|
37115,4067
|
||||||
|
37115,3573
|
||||||
|
38237,3573
|
||||||
|
38237,3513
|
||||||
|
39467,3513
|
||||||
|
39467,2540
|
||||||
|
40504,2540
|
||||||
|
40504,2957
|
||||||
|
41821,2957
|
||||||
|
41821,2937
|
||||||
|
43041,2937
|
||||||
|
43041,2846
|
||||||
|
44244,2846
|
||||||
|
44244,2199
|
||||||
|
45390,2199
|
||||||
|
45390,2050
|
||||||
|
46599,2050
|
||||||
|
46599,2503
|
||||||
|
47839,2503
|
||||||
|
47839,2250
|
||||||
|
49039,2250
|
||||||
|
49039,1529
|
||||||
|
50252,1529
|
||||||
|
50252,2416
|
||||||
|
51454,2416
|
||||||
|
51454,1673
|
||||||
|
52703,1673
|
||||||
|
52703,1731
|
||||||
|
53929,1731
|
||||||
|
53929,2741
|
||||||
|
55054,2741
|
||||||
|
55054,2806
|
||||||
|
56260,2806
|
||||||
|
56260,2303
|
||||||
|
57561,2303
|
||||||
|
57561,3250
|
||||||
|
58630,3250
|
||||||
|
58630,3491
|
||||||
|
59810,3491
|
||||||
|
59810,3232
|
||||||
|
61110,3232
|
||||||
|
61110,3305
|
||||||
|
62350,3305
|
||||||
|
62350,4267
|
||||||
|
63344,4267
|
||||||
|
63344,4292
|
||||||
|
64603,4292
|
||||||
|
64603,4541
|
||||||
|
65803,4541
|
||||||
|
65803,4718
|
||||||
|
67039,4718
|
||||||
|
67039,5971
|
||||||
|
67854,5971
|
||||||
|
67854,5795
|
||||||
|
69243,5795
|
||||||
|
69243,6472
|
||||||
|
70275,6472
|
||||||
|
70275,7075
|
||||||
|
71333,7075
|
||||||
|
71333,7586
|
||||||
|
72437,7586
|
||||||
|
72437,7724
|
||||||
|
73754,7724
|
||||||
|
73754,9007
|
||||||
|
74419,9007
|
||||||
|
74419,9432
|
||||||
|
75580,9432
|
||||||
|
75580,9758
|
||||||
|
76823,9758
|
||||||
|
76823,10995
|
||||||
|
77451,10995
|
||||||
|
77451,11204
|
||||||
|
78800,11204
|
||||||
|
78800,12349
|
||||||
|
79458,12349
|
||||||
|
79458,12754
|
||||||
|
80694,12754
|
||||||
|
80694,13689
|
||||||
|
81501,13689
|
||||||
|
81501,14846
|
||||||
|
82094,14846
|
||||||
|
82094,15182
|
||||||
|
83443,15182
|
||||||
|
83443,16129
|
||||||
|
84225,16129
|
||||||
|
84225,17007
|
||||||
|
85072,17007
|
||||||
|
85072,18270
|
||||||
|
85490,18270
|
||||||
|
85490,18716
|
||||||
|
86827,18716
|
||||||
|
86827,20047
|
||||||
|
87127,20047
|
||||||
|
87127,20860
|
||||||
|
88053,20860
|
||||||
|
88053,21861
|
||||||
|
88741,21861
|
||||||
|
88741,22893
|
||||||
|
89380,22893
|
||||||
|
89380,24056
|
||||||
|
89814,24056
|
||||||
|
89814,24648
|
||||||
|
91149,24648
|
||||||
|
91149,26031
|
||||||
|
91207,26031
|
||||||
|
91207,26881
|
||||||
|
92167,26881
|
||||||
|
92167,28131
|
||||||
|
92401,28131
|
||||||
|
92401,29090
|
||||||
|
93195,29090
|
||||||
|
93195,30092
|
||||||
|
93928,30092
|
||||||
|
93928,31302
|
||||||
|
94206,31302
|
||||||
|
94206,32338
|
||||||
|
94892,32338
|
||||||
|
94892,33518
|
||||||
|
95224,33518
|
||||||
|
95224,34662
|
||||||
|
95649,34662
|
||||||
|
95649,35913
|
||||||
|
95732,35913
|
||||||
|
95732,37043
|
||||||
|
96192,37043
|
||||||
|
96192,38216
|
||||||
|
96509,38216
|
||||||
|
96509,39482
|
||||||
|
96423,39482
|
||||||
|
96423,40678
|
||||||
|
96588,40678
|
||||||
|
96588,41805
|
||||||
|
97135,41805
|
||||||
|
97135,43000
|
||||||
|
97341,43000
|
||||||
|
97341,44214
|
||||||
|
97400,44214
|
||||||
|
97400,45418
|
||||||
|
97517,45418
|
||||||
|
97517,46570
|
||||||
|
98364,46570
|
||||||
|
98364,47828
|
||||||
|
97740,47828
|
||||||
|
97740,49030
|
||||||
|
98198,49030
|
||||||
|
98198,50248
|
||||||
Reference in New Issue
Block a user