private static int GetSumOfN(int n)
private static int CountOfTriangles(int n)
throw new ArgumentException("N should be greater than 0");
int[] sumUp = new int[n + 1];
int[] sumDown = new int[n + 1];
sumUp[1] = 1; sumUp[2] = 3;
sumDown[1] = 0; sumDown[2] = 1;
for (int i = 2; i <= n; i++)
sumUp[i] = sumUp[i - 1] + GetSumOfN(i);
sumDown[i] = sumDown[i - 2] + GetSumOfN(i - 1);
return sumUp[n] + sumDown[n];
public static void Main()
Console.WriteLine("UniLecs");
Console.WriteLine(string.Format("Answer({0})= {1}", 1, CountOfTriangles(1)));
Console.WriteLine(string.Format("Answer({0})= {1}", 2, CountOfTriangles(2)));
Console.WriteLine(string.Format("Answer({0})= {1}", 3, CountOfTriangles(3)));
Console.WriteLine(string.Format("Answer({0})= {1}", 4, CountOfTriangles(4)));
Console.WriteLine(string.Format("Answer({0})= {1}", 5, CountOfTriangles(5)));
Console.WriteLine(string.Format("Answer({0})= {1}", 6, CountOfTriangles(6)));