Pagini recente » Istoria paginii runda/helo_2018 | Cod sursa (job #1290390) | Cod sursa (job #325541) | Cod sursa (job #2170688) | Cod sursa (job #2029587)
#include <fstream>
using namespace std;
ifstream f("tablete.in");
ofstream g("tablete.out");
int a[1001][1001],n,k,b,b2,nrc;
void afisare()
{for(int i=1;i<=n;i++)
{for(int j=1;j<=n;j++)
g<<a[i][j]<<" ";
g<<'\n';}}
int main()
{f>>n>>k;
if(k%2==0&&n%2==0)
for(int i=1;i<=n*n;i++)
{g<<i<<" ";
if(i%n==0)
g<<'\n';}
else
{int ok=0;
for(int i=1;i<n-1;i++)
for(int j=1;j<=n;j++)
if(j==1&&ok==1)
{a[i][j]=b;
ok=0;}
else
if(j==1&&ok==0)
a[i][j]=(i-1)*n+j;
else
if(j==k&&((i-1)*n+j)%2==0)
a[i][j]=(i-1)*n+j;
else
if(j==k&&((i-1)*n+j)%2==1)
{ok=1;
b=(i-1)*n+j;
a[i][j]=(i-1)*n+j+1;}
else
if(j>1&&j<k)
a[i][j]=(i-1)*n+j;
else
if(j>k&&ok==1)
a[i][j]=(i-1)*n+j+1;
else
if(j>k&&ok==0)
a[i][j]=(i-1)*n+j;
b2=(n-2)*n+1;
if(ok==0)
{for(int j=1;j<=n;j++)
a[n-1][j]=(n-2)*n+j+1;
a[n][1]=b;
a[n][2]=b2;
for(int j=3;j<=n;j++)
a[n][j]=(n-1)*n+j;}
else
{for(int j=1;j<n;j++)
a[n-1][j]=(n-2)*n+j+1;
a[n-1][n]=(n-1)*n+k;
a[n][1]=b;
for(int j=2;j<=k;j++)
a[n][j]=(n-1)*n+j-1;
for(int j=k+1;j<=n;j++)
a[n][j]=(n-1)*n+j;}
afisare();
}
return 0;
}