Pagini recente » Cod sursa (job #2921970) | Cod sursa (job #3210438) | Cod sursa (job #594339) | Cod sursa (job #1874586) | Cod sursa (job #2031207)
#include <fstream>
using namespace std;
ifstream f("tablete.in");
ofstream g("tablete.out");
int n, k, a[1001][1001];
int lk[1001];
void form_lk()
{
for(int i=1; i<n; i++)
{
int x=n*(i-1) + (k-1);
if(x%2 == 1)
x--;
a[i][k]=x+2;
lk[i]=x+2;
}
a[n][k] = (n*n-(n-k))/2*2;
lk[n] = a[n][k];
}
void jum1()
{
int nr=1;
int l=1;
int vmin = a[l][k];
for(int i=1; i<=n; i++)
{
for(int j=1; j<=k-1; j++)
{
if(nr == vmin)
{nr++; vmin=a[++l][k];}
a[i][j] = nr;
nr++;
}
}
}
void jum2()
{
int l=n;
int vmax = a[l][k];
int nr = n*n;
for(int i=n; i>=1; i--)
{
for(int j=n; j>=k+1; j--)
{
if(nr == vmax)
{vmax = a[--l][k]; nr--;}
a[i][j] = nr;
nr--;
}
}
}
void afis()
{
for(int i=1; i<=n; i++)
{
for(int j=1; j<=n; j++)
g<<a[i][j]<<" ";
g<<endl;
}
}
int main()
{
f>>n>>k;
if(n%2==0 && k % 2 == 0)
{
for(int i=1; i<=n; i++)
{
for(int j=n*(i-1) + 1; j<=n*i; j++)
g<<j<<" ";
g<<'\n';
}
}
else{
form_lk();
jum1();
jum2();
afis();
}
return 0;
}