Pagini recente » Cod sursa (job #204082) | Cod sursa (job #2001814) | Cod sursa (job #757941) | Cod sursa (job #1478839) | Cod sursa (job #485931)
Cod sursa(job #485931)
#include <fstream>
using namespace std;
int a[1005][1005],n;
void rezolva1()
{
int i,j;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
a[i][j]=(i-1)*n+j;
}
void rezolva2()
{
int i,j;
for(i=1;i<=n-1;i++)
{
if(i%2) { for(j=1;j<=n-1;j++) a[i][j]=(i-1)*n+j; a[i][n]=(i+1)*n;}
if(!(i%2)) for(j=1;j<=n;j++) a[i][j]=(i-1)*n+j-1;
}
for(i=1;i<=n;i++) a[n][i]=(n-1)*n+i;
}
void rezolva3()
{
int i,j;
for(i=1;i<=n-2;i++)
for(j=1;j<=n;j++)
a[i][j]=(i-1)*n+j+1;
for(j=1;j<=n-1;j++) a[n-1][j]=(n-2)*n+j+1;
a[n-1][n]=n*n;
a[n][1]=1;
for(j=2;j<=n;j++) a[n][j]=(n-1)*n+j-1;
}
void rezolva4()
{
int i,j;
rezolva2();
for(i=1;i<=n-2;i++)
{
a[i][n+1]=a[i+1][1];
for(j=1;j<=n;j++)
a[i][j]=a[i][j+1];
if(i%2) swap(a[i][n-1],a[i][n]);
}
a[n-1][n+1]=a[n][n];
for(j=1;j<=n;j++) a[n-1][j]=a[n-1][j+1];
for(j=n;j>1;j--) a[n][j]=a[n][j-1];
a[n][1]=1;
}
int main()
{
int k,i,j;
ifstream fi("tablete.in");
ofstream fo("tablete.out");
fi>>n>>k;
if(!(n%2) and !(k%2)) rezolva1();
if((n%2) and !(k%2)) rezolva2();
if(!(n%2) and (k%2)) rezolva3();
if((n%2) and (k%2)) rezolva4();
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
fo<<a[i][j]<<" ";
fo<<"\n";
}
return 0;
}