Pagini recente » Cod sursa (job #2092022) | Cod sursa (job #145726) | Cod sursa (job #1886115) | Cod sursa (job #24382) | Cod sursa (job #2029617)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("tablete.in");
ofstream g("tablete.out");
int n, k, a[1008][1008], t=1;
void afisare()
{
for (int i=1; i<=n; i++)
{
for (int j=1; j<=n; j++)
g << a[i][j]<<' ';
g <<"\n";
}
}
void caz2()
{
int mem;
for (int i=1; i<n; i++)
{
mem=a[i][k];
for (int j=k; j<n; j++)
{
a[i][j]=a[i][j+1];
}
a[i][n]=a[i+1][1];
a[i+1][1]=mem;
}
mem=a[n-1][n];
a[n-1][n]=a[n][n];
for (int j=n; j>=2; j--)
a[n][j]=a[n][j-1];
a[n][2]=mem;
afisare();
}
void caz3()
{
int mem;
for (int i=1; i<n; i++)
{
if (i%2==0)
{
mem=a[i][k];
for (int j=k; j<n; j++)
{
a[i][j]=a[i][j+1];
}
a[i][n]=a[i+1][1];
a[i+1][1]=mem;
}
}
afisare();
}
void caz4()
{
int mem;
for (int i=1; i<n; i++)
{
if (i%2==1)
{
mem=a[i][k];
for(int j=k; j<n; j++)
{
a[i][j]=a[i][j+1];
}
a[i][n]=a[i+1][1];
a[i+1][1]=mem;
}
}
mem=a[n][n];
for (int j=n; j>1; j--)
{
a[n][j]=a[n][j-1];
}
a[n][1]=a[n-1][n];
a[n-1][n]=mem;
afisare();
}
int main()
{
f >> n >> k;
for (int i=1; i<=n; i++)
{
for (int j=1; j<=n; j++)
{
a[i][j]=t;
t++;
}
}
if (n%2==0 && k%2==0)
{
afisare();
}
else if (n%2==0 && k%2==1)
{
caz2();
}
else if (n%2==1 && k%2==0)
{
caz3();
}
else if (n%2==1 && k%2==1)
{
caz4();
}
return 0;
}