Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class BitsAtCrossroads
- {
- static void Main()
- {
- int size = int.Parse(Console.ReadLine());
- int[,] matrix = new int[size, size];
- string input = Console.ReadLine();
- int numberOfCrossroads = 0;
- while (input != "end")
- {
- string[] tokens = input.Split();
- int row = int.Parse(tokens[0]);
- int col = size - int.Parse(tokens[1]) - 1;
- matrix[row, col] = 1;
- numberOfCrossroads++;
- numberOfCrossroads += findCrossroads(matrix, row, col, -1, -1);
- numberOfCrossroads += findCrossroads(matrix, row, col, -1, +1);
- numberOfCrossroads += findCrossroads(matrix, row, col, +1, +1);
- numberOfCrossroads += findCrossroads(matrix, row, col, +1, -1);
- input = Console.ReadLine();
- }
- for (int i = 0; i < matrix.GetLength(0); i++)
- {
- Console.WriteLine(GetNumber(matrix, i));
- }
- Console.WriteLine(numberOfCrossroads);
- }
- static int findCrossroads(int[,] board, int row, int col, int directionY, int directionX)
- {
- int intersections = 0;
- int len = board.GetLength(0);
- while (true)
- {
- row += directionY;
- col += directionX;
- if (row < 0 || row >= len || col < 0 || col >= len)
- {
- return intersections;
- }
- if (board[row, col] == 0)
- {
- board[row, col] = 1;
- }
- else
- {
- intersections++;
- }
- }
- }
- static uint GetNumber(int[,] board, int row)
- {
- string numAsString = "";
- for (int i = 0; i < board.GetLength(1); i++)
- {
- numAsString += board[row, i];
- }
- uint num = Convert.ToUInt32(numAsString, 2);
- return num;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement