Pagini recente » Cod sursa (job #2848857) | Cod sursa (job #649992) | Cod sursa (job #2028866) | Cod sursa (job #1615768) | Cod sursa (job #670131)
Cod sursa(job #670131)
#include<iostream>
#include<fstream>
#include<cstdlib>
using namespace std;
int N,K;
ifstream in("tablete.in");
ofstream out("tablete.out");
#define foreach(i, N) for(int i=0;i<N;i++)
void solvepar(){
if(K%2==0){
int k=1;
foreach(i,N){
foreach(j,N){
out << k << " ";
k++;
}
out << endl;
}
} else {
foreach(i,N) {
foreach(j, N) {
if(i%2==0){
if(j<N-1)
out << (i*N+j+2) << " ";
else
out << (i*N+j+N+1) << " ";
} else {
if(j==0){
out << (i*N+j-N+1) << " ";
} else {
out << (i*N+j) << " ";
}
}
}
out << endl;
}
}
}
void print_matr(int**a, int N){
foreach(i,N){
foreach(j,N){
out << a[i][j] << " ";
}
out << endl;
}
}
int**aloc_matr(int N){
int** a = (int**)malloc(N*sizeof(int*));
foreach(i,N){
a[i]=(int*)malloc(N*sizeof(int));
}
return a;
}
void solveimpar(){
if(K%2==0){
int** a = aloc_matr(N);
int k = 1;
foreach(i, N/2) {
foreach(j, N/2) {
a[2*i][2*j] = k++;
a[2*i][2*j+1] = k++;
a[2*i+1][2*j]=k++;
a[2*i+1][2*j+1]=k++;
}
a[2*i][N-1]=k++;
a[2*i+1][N-1]=k++;
}
foreach(i,N){
a[N-1][i]=k++;
}
print_matr(a, N);
}
}
int main()
{
in >> N >> K;
if(N%2==0)
solvepar();
else
solveimpar();
return 0;
}