Pagini recente » Cod sursa (job #2679084) | Cod sursa (job #2838091) | Cod sursa (job #1586840) | Cod sursa (job #2706498) | Cod sursa (job #2100520)
#include <fstream>
using namespace std;
int n,k,i,j,t,a[1001][1001];
int main()
{
ifstream f("tablete.in");
ofstream g("tablete.out");
f>>n>>k;
if(k%2==0)
{
t=1;
for(i=1; i<=n; i++)
for(j=1; j<=k; j++)
{
a[i][j]=t;
t++;
}
for(i=1; i<=n; i++)
for(j=k+1; j<=n; j++)
{
a[i][j]=t;
t++;
}
}
if(n%2==0 and k%2==1)
{
for(j=1; j<=k; j++)
for(i=1; i<=n; i++)
{
if(i==1)
a[i][j]=j;
if(j==k and i==1)
a[i][j]=k+1;
if(i%2==0 and (j==1 or j==k))
a[i][j]=a[i-1][j]+k-1;
else if(i%2==1 and i!=1 and (j==1 or j==k))
a[i][j]=a[i-1][j]+k+1;
else if(j!=1 and i!=1)
a[i][j]=a[i-1][j]+k;
}
t=n*k+1;
for(i=1; i<=n; i++)
for(j=k+1; j<=n; j++)
{
a[i][j]=t;
t++;
}
}
if(n%2==1 and k%2==1)
{
for(j=1; j<=k; j++)
for(i=1; i<=n; i++)
{
if(i==1)
a[i][j]=j;
if(j==k and i==1)
a[i][j]=k+1;
if(i%2==0 and (j==1 or j==k))
a[i][j]=a[i-1][j]+k-1;
else if(i%2==1 and i!=1 and (j==1 or j==k))
a[i][j]=a[i-1][j]+k+1;
else if(j!=1 and i!=1)
a[i][j]=a[i-1][j]+k;
}
t=n*k;
for(i=1; i<=n; i++)
for(j=k+1; j<=n; j++)
{
a[i][j]=t;
if(t==n*k)
t+=2;
else
t++;
}
}
for(i=1; i<=n; i++)
{
for(j=1; j<=n; j++)
g<<a[i][j]<<" ";
g<<"\n";
}
return 0;
}