using System.Collections.Generic;
using System.Globalization;
public static class Program
public static int test = 5;
public static hotel[] hotels;
public static int minDistance;
public static int maxDistanceDay = 360;
public static int days = 5;
public static string TextFromFile;
public static void Main()
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.GetCultureInfo("en");
string url = $"https://bwinf.de/fileadmin/user_upload/hotels{test}.txt";
var textFromFile = new WebClient().DownloadString(url);
public static void CalculateRoute(float rating)
List<hotel> bestHotels = new List<hotel>();
for (int day = 0; day < days; day++)
bestHotels.Add(new hotel() { rating = 0, distance = 0 });
for (int hotel = 0; hotel < hotels.Length; hotel++)
if (hotels[hotel].distance <= madeDistance + maxDistanceDay && hotels[hotel].distance > madeDistance && hotels[hotel].rating >= rating)
if (hotels[hotel].distance > bestHotels[day].distance)
bestHotels[day] = hotels[hotel];
madeDistance = bestHotels[day].distance;
if (madeDistance + 360 > minDistance)
if (madeDistance + 360 > minDistance)
for (int i = 0; i < bestHotels.Count; i++)
print(bestHotels[i].rating + " on day " + actualDay + " at " + bestHotels[i].distance);
decimal newrating = decimal.Parse(rating.ToString()) - 0.1M;
CalculateRoute(float.Parse(newrating.ToString()));
public static void ReadInput(string input)
string[] lines = input.Split('\r', '\n');
hotels = new hotel[Int32.Parse(lines[0])];
minDistance = Int32.Parse(lines[1]);
for (int i = 0; i < Int32.Parse(lines[0]); i++)
hotels[i].distance = Int32.Parse(lines[i + 2].Split(' ')[0]);
hotels[i].rating = float.Parse(lines[i + 2].Split(' ')[1], new CultureInfo("en-US").NumberFormat);
public static void print(dynamic message)
Console.WriteLine(message);