Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace FoldAndSum_12._05._2016
- {
- class Program
- {
- static void Main(string[] args)
- {
- int[] numbs = Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
- int k = numbs.Length / 4; // example: if numbs.Length = 8 => k = 2;
- int[] arrStartEnd = new int[2 * k]; //if numbs.Length = 8 => []arrStartEnd.Length = 4;
- int[] arrMiddle = new int[2 * k]; // the middle items of []numbs
- int[] arrSum = new int[2 * k];
- ArrayEnd(numbs, arrStartEnd, k);
- ArrayStart(numbs, arrStartEnd, k);
- ArrayMiddle(numbs, arrMiddle, k);
- ArraySummation(arrStartEnd, arrMiddle, arrSum, k);
- Console.WriteLine(string.Join(" ", arrSum));
- }
- static int[] ArrayEnd(int[] numbs, int[] arrStartEnd, int k) // this method saves reversed nums LAST items in arrStartEnd
- {
- int[] arrTemp = new int[k];
- for (int i = 0; i < k; i++)
- {
- arrTemp[i] = numbs[(3 * k) + i];
- }
- for (int iRev = 0; iRev < k - 1; iRev++) // reverse of []arrTemp
- {
- int old = arrTemp[iRev];
- arrTemp[iRev] = arrTemp[k - 1 - iRev];
- arrTemp[k - 1 - iRev] = old;
- }
- for (int iSave = 0; iSave < k; iSave++) // saving reversed []arrTmp values in []arrStartEnd.
- {
- arrStartEnd[k + iSave] = arrTemp[iSave];
- }
- return arrStartEnd;
- }
- static int[] ArrayStart(int[] numbs, int[] arrStartEnd, int k) // this method saves reversed nums FIRST items in arrStartEnd
- {
- int[] arrTemp = new int[k];
- for (int i = 0; i < k; i++)
- {
- arrTemp[i] = numbs[i];
- }
- for (int iRev = 0; iRev < k - 1; iRev++) // reverse of []arrTemp
- {
- int old = arrTemp[iRev];
- arrTemp[iRev] = arrTemp[k - 1 - iRev];
- arrTemp[k - 1 - iRev] = old;
- }
- for (int iSave = 0; iSave < k; iSave++) // saving reversed []arrTmp values in []arrStartEnd.
- {
- arrStartEnd[iSave] = arrTemp[iSave];
- }
- return arrStartEnd;
- }
- static int[] ArrayMiddle(int[] numbs, int[] arrMiddle, int k)
- {
- for (int iMiddle = k; iMiddle < 3 * k; iMiddle++)
- {
- arrMiddle[iMiddle - k] = numbs[iMiddle];
- }
- return arrMiddle;
- }
- static int[] ArraySummation(int[] arrStartEnd, int[] arrMiddle, int[] arrSum, int k)
- {
- for (int iSum = 0; iSum < 2 * k; iSum++)
- {
- arrSum[iSum] = arrStartEnd[iSum] + arrMiddle[iSum];
- }
- return arrSum;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement