Pagini recente » Cod sursa (job #2495386) | Monitorul de evaluare | Cod sursa (job #1519117) | Cod sursa (job #780149) | Cod sursa (job #2011998)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("Tablete.in");
ofstream fout("Tablete.out");
int n,k,a[1001][1001];
void completare(int n,int k,int a[1001][1001])
{
int nr=1;
for(int i=0;i<n;i++)
for(int j=0;j<k;j++)
{
a[i][j]=nr;
nr++;
}
for(int i=0;i<n;i++)
for(int j=k;j<n;j++)
{
a[i][j]=nr;
nr++;
}
//cout<<nr;
}
void interschimbareNr(int &a,int &b)
{
int aux=a;
a=b;
b=aux;
}
void interschimbareGen(int n,int k,int a[1001][1001])
{
for(int i=0;i<n-1;i+=2)
interschimbareNr(a[i][k-1],a[i+1][0]);
}
void generare(int n,int k,int a[1001][1001])
{
completare(n,k,a);
if(n%2==0 && k%2==1)
interschimbareGen(n,k,a);
if(n%2==1 && k%2==1)
{
interschimbareGen(n,k,a);
interschimbareNr(a[n-1][k-1],a[0][k]);
}
}
void afisare(int n,int a[1001][1001])
{
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
fout<<a[i][j]<<" ";
fout<<endl;
}
}
int main()
{
fin>>n>>k;
//completare(n,k,a);
generare(n,k,a);
afisare(n,a);
return 0;
}