Advertisement
georgimanov

03 Arrow

Apr 14th, 2014
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.31 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace _5.Problem
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             int n = int.Parse(Console.ReadLine());
  14.             int rows = n * 2 - 1;
  15.             int cols = n * 2 - 1;
  16.             char[,] matrix = new char[rows, cols];
  17.            
  18.             InitializeMatrix(matrix);
  19.  
  20.             int leftPivot = n /2;
  21.             int rightPivot = cols - n / 2  - 1;
  22.  
  23.             //first row
  24.             for (int i = leftPivot; i <= rightPivot; i++)
  25.             {
  26.                 matrix[0, i] = '#';
  27.             }
  28.  
  29.             //upper part
  30.             for (int i = 1; i < n; i++)
  31.             {
  32.                 matrix[i, leftPivot] = '#';
  33.                 matrix[i, rightPivot] = '#';
  34.             }
  35.            
  36.             // middle part
  37.  
  38.             leftPivot = 0;
  39.             rightPivot = cols - 1;
  40.  
  41.             for (int i = 0; i < n / 2 + 1; i++)
  42.             {
  43.                 matrix[n - 1, leftPivot + i] = '#';
  44.                 matrix[n - 1, rightPivot - i] = '#';
  45.  
  46.             }
  47.             leftPivot = 1;
  48.             rightPivot = cols - 2;
  49.  
  50.             //lower part
  51.  
  52.             for (int row = n; row < rows - 1; row++)
  53.             {
  54.                 matrix[row, leftPivot] = '#';
  55.                 matrix[row, rightPivot] = '#';
  56.                 leftPivot++;
  57.                 rightPivot--;
  58.             }
  59.  
  60.  
  61.             //bottom row
  62.             matrix[rows - 1, cols / 2 ] = '#';
  63.  
  64.             PrintMatrix(matrix);
  65.  
  66.  
  67.         }
  68.  
  69.         private static void PrintMatrix(char[,] matrix)
  70.         {
  71.             for (int row = 0; row < matrix.GetLength(0); row++)
  72.             {
  73.                 for (int col = 0; col < matrix.GetLength(1); col++)
  74.                 {
  75.                     Console.Write(matrix[row, col]);
  76.                 }
  77.                 Console.WriteLine();
  78.             }
  79.         }
  80.  
  81.         private static void InitializeMatrix(char[,] matrix)
  82.         {
  83.             for (int row = 0; row < matrix.GetLength(0); row++)
  84.             {
  85.                 for (int col = 0; col < matrix.GetLength(1); col++)
  86.                 {
  87.                     matrix[row, col] = '.';
  88.                 }
  89.             }
  90.         }
  91.     }
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement