ulmaxy
BAN USERIt takes 2 hours, is it ok?
int[] age = new int[13] { 2, 6, 1, 2, 9, 1, 1, 4, 9, 6, 3, 5, 1 };
int[] choco = new int[13];
int descendingLength;
for (int i = 0; i < age.Length; i++)
{
if (i < age.Length - 1)
{
if (age[i] > age[i + 1])
{
descendingLength = 1;
int j;
for (j = i; (j + 1) < age.Length && age[j] > age[j + 1]; j++)
descendingLength++;
if(i != 0 && choco[i-1] >= descendingLength)
{
if (age[i-1] == age[i])
choco[i] = choco[i - 1];
else
choco[i] = choco[i - 1] + 1;
i++;
descendingLength--;
}
while (descendingLength > 0)
{
choco[i] = descendingLength--;
i++;
}
i--;
}
else
if (i != 0 && age[i] > age[i - 1])
choco[i] = choco[i - 1] + 1;
else
choco[i] = 1;
}
else
{
if (age[i] > age[i - 1])
choco[i] = choco[i - 1] + 1;
else
choco[i] = 1;
}
}
foreach (int col in choco)
Console.Write(col + " ");
static void Main(string[] args)
{
int n = 8, j;
for(int i = 1, k = 1; i <= n*2; i++)
{
if (i <= n)
{
for (j = k; j < i + k; j++)
Console.Write(j + " ");
if (i != n) k = j;
}
else
{
for (j = k; j < n - (i - n) + 1 + k; j++)
Console.Write(j + " ");
k = j + 1 - (n - (i - n) + 1)*2;
}
Console.WriteLine();
}
}
It was a wrong way to do it, here is the proper:
- ulmaxy May 12, 2015