61 lines
1.8 KiB
C#
61 lines
1.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using static System.Console;
|
|
|
|
namespace _2018_01
|
|
{
|
|
class Program
|
|
{
|
|
static void Main(string[] args)
|
|
{
|
|
long longVar = 0;
|
|
int varv = 0;
|
|
bool stopped = false;
|
|
Dictionary<string, int> resCheck = new Dictionary<string, int>();
|
|
string indata = File.ReadAllText(@"..\..\..\Data\Adventofcode_181201\data181201.txt");
|
|
//string indata = "+1\r\n-2\r\n+3\r\n+1\r\n+1\r\n-2\r\n";
|
|
string[] resTab = indata.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
|
|
while (!stopped)
|
|
{
|
|
varv++;
|
|
foreach (var str in resTab)
|
|
{
|
|
longVar += long.Parse(str);
|
|
WriteLine($"freq: {longVar} nr :{str.ToString()}");
|
|
if (checkAdd(resCheck, longVar) > 1)
|
|
{
|
|
stopped = true;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
WriteLine($"The answer is {longVar} at varv {varv}");
|
|
//foreach (var keyStr in resCheck.Keys)
|
|
//{
|
|
// WriteLine($"freq: {keyStr} nr :{resCheck[keyStr].ToString()}");
|
|
|
|
//}
|
|
|
|
}
|
|
|
|
private static int checkAdd(Dictionary<string, int> work, long newVal)
|
|
{
|
|
int times = 0;
|
|
int res;
|
|
if (work.TryGetValue(newVal.ToString(), out res))
|
|
{
|
|
work[newVal.ToString()] += 1;
|
|
}
|
|
else
|
|
{
|
|
work.Add(newVal.ToString(), 1);
|
|
}
|
|
|
|
times = work[newVal.ToString()];
|
|
|
|
return times;
|
|
}
|
|
}
|
|
}
|