toj 2968 Find the Diagonal
Time Limit: 1.0 Seconds Memory Limit: 65536K
Total Runs: 695 Accepted Runs: 223
A square matrix contains equal number of rows and columns. If the order of the matrix is known it can be calculated as in the following format:
Order: 3
Order: 5
and so on..
Now look at the diagonals of the matrices. In the second matrix - the elements of a diagonal are marked with circles but this is not the only one in this matrix but there are some other minor diagonals like <6, 12, 18, 24> as well as <2, 8, 14, 20> and many others.
Input
Each input line consists of two values. The first value is the order of the matrix and the later is an arbitrary element of that matrix. The maximum element of the matrix will fit as a 32-bit integer.Output
Each output line will display the diagonal elements of the matrix containing the given input element.Sample Input
4 5 5 11 10 81
Sample Output
5 10 15 11 17 23 81 92
Samina Azad (CSE-03)
Source: CUET Easy Contest
#include <iostream>
using namespace std;
int m , n , a1;
int a(int i)
{
return a1 + (n + 1) * (i - 1);
}
int main()
{
int i;
start: while (cin >> n >> m)
{
while (1)
{
if ((m - 1) % n == 0 || m <= n)
{
a1 = m;
break;
}
else
m -= n + 1;
}
cout << a1 ;
if (a1 % n == 0)
{
cout << endl;
goto start;
}
for (i = 2 ; ; ++ i)
{
int mm = a(i);
if (mm <= n * n)
{
cout << " " << mm;
if (mm % n == 0)
break;
}
else
break;
}
cout << endl;
}
return 0;
}
using namespace std;
int m , n , a1;
int a(int i)
{
return a1 + (n + 1) * (i - 1);
}
int main()
{
int i;
start: while (cin >> n >> m)
{
while (1)
{
if ((m - 1) % n == 0 || m <= n)
{
a1 = m;
break;
}
else
m -= n + 1;
}
cout << a1 ;
if (a1 % n == 0)
{
cout << endl;
goto start;
}
for (i = 2 ; ; ++ i)
{
int mm = a(i);
if (mm <= n * n)
{
cout << " " << mm;
if (mm % n == 0)
break;
}
else
break;
}
cout << endl;
}
return 0;
}