Monday, April 22, 2019

Square Matrix

  • Problem Description

    Given a square matrix of size NN, calculate the absolute difference between the sums of its diagonals. 

    Input
    The first line contains a single integer N. The next N lines denote the matrix's rows, with each line containing N space-separated integers describing the columns.

    Output
    Print the absolute difference between the two sums of the matrix's diagonals as a single integer.

    Constraints
    1<=N<=10

    Explanation
    The primary diagonal is: 
    11
    5
    -12
    Sum across the primary diagonal: 11 + 5 - 12 = 4
    The secondary diagonal is:
    4
    5
    10

    Sum across the secondary diagonal: 4 + 5 + 10 = 19 
    Difference: |4 - 19| = 15
  • Test Case 1

    Input (stdin)
    3

    11 2 4

    4 5 6

    10 8 -12

    Expected Output
    15
  • Test Case 2

    Input (stdin)
    3

    4 5 5

    3 9 6

    7 4 6

    Expected Output
    2
Solution

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
typedef long long int lli;
typedef long  int li;
#define MAX(a,b) a>b?a:b
#define MIN(a,b) a>b?b:a
int main() 
{
    int n,a,i,j,p,q,x=0,y=0;
    scanf("%d",&n);
    p=1;q=n;
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=n;j++)
        {
            scanf("%d",&a);
            if(i==j)
            {
                x+=a;
            }
            if(i==p && j==q)
            {
                y+=a;
                p++;
                q--;
            }
        }
    }
    printf("%d",x-y>0 ? x-y : y-x);
  return 0;
}

No comments:

Post a Comment

Parity

Problem Description Ram and Sita playing the parity game. Two types of parity are there. One is odd parity and next is even parity. Ram will...