toj 2968 Find the Diagonal

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
Submit   List    Runs   Forum   Statistics

#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;
}
原文地址:https://www.cnblogs.com/forever4444/p/1460363.html