Advertisement
Dimitar46

4.FoldAndSum

Jun 2nd, 2022
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.01 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3.  
  4.  
  5. namespace _4._Fold_and_Sum
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             int[] arr = Console.ReadLine().Split().Select(int.Parse).ToArray();
  12.             int middle = arr.Length / 2;
  13.  
  14.             int[] leftArr = new int[middle/2];
  15.            
  16.             int count = 0;
  17.             for (int i = 0; i < leftArr.Length; i++)
  18.             {
  19.                 count++;
  20.                 leftArr[i] = arr[i];
  21.                
  22.             }
  23.             Array.Reverse(leftArr);
  24.          
  25.             int[] middleArr = new int[middle];
  26.        
  27.  
  28.             int j = 0;
  29.             for (int i = middle-count; i < middle+count; i++, j++)
  30.             {
  31.  
  32.                 middleArr[j] = arr[i];
  33.              
  34.             }
  35.  
  36.            
  37.            
  38.             int[] rightArr = new int[leftArr.Length];
  39.             int k = 0;
  40.             for (int i = middle + count; i <= arr.Length - 1; i++,k++)
  41.             {
  42.                 rightArr[k] = arr[i];
  43.                
  44.  
  45.             }
  46.             Array.Reverse(rightArr);
  47.    
  48.             int[] totalSumLeft = new int[arr.Length / 2 /2];
  49.            
  50.             int breaker = 1;
  51.             for (int i = 0; i < totalSumLeft .Length; i++, breaker++)
  52.             {
  53.                 if (leftArr.Length<=middleArr.Length-breaker)
  54.                 {
  55.                     totalSumLeft [i] = leftArr[i] + middleArr[i];
  56.                 }
  57.  
  58.                
  59.             }
  60.  
  61.             breaker = 1;
  62.             int[] totalSumRight = new int[totalSumLeft.Length];
  63.             for (int i = 0; i < totalSumRight.Length; i++ ,breaker++)
  64.             {
  65.                 if (rightArr.Length <= middleArr.Length - breaker)
  66.                 {
  67.                     totalSumRight[i] = rightArr[i] + middleArr[i+count];
  68.                 }
  69.             }
  70.          
  71.          
  72.             Console.Write(string.Join(" ",totalSumLeft) + " " + string.Join(" ",totalSumRight));
  73.          
  74.        
  75.         }
  76.     }
  77. }
  78.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement