Pagini recente » Istoria paginii runda/no_commies_aloud | Cod sursa (job #1117526) | Cod sursa (job #271736) | Cod sursa (job #1780466) | Cod sursa (job #997543)
Cod sursa(job #997543)
#include <iostream>
#include <fstream>
#define NMax 1024
using namespace std;
int n, k;
int sol[NMax][NMax];
bool viz[NMax*NMax];
inline void Read()
{
ifstream f ("tablete.in");
f>>n>>k;
f.close();
}
inline void Solve()
{
if (k & 1)
{
/// k impar;
int i, j, nr;
nr = 0;
for (i=1; i<=n; ++i)
{
for (j=1; j<=k; ++j)
sol[i][j] = ++nr;
if (i&1)
{
++sol[i][k];
++i;
if (i<=n)
{
sol[i][1] = nr;
nr++;
for (j=2; j<=k; j++)
sol[i][j] = ++nr;
}
}
}
if (n&1)
{
sol[1][k+1] = nr;
nr++;
for (j=k+2; j<=n; ++j)
sol[1][j] = ++nr;
for (i=2; i<=n; ++i)
for (j=k+1; j<=n; ++j)
sol[i][j] = ++nr;
}
else
{
for (i=1; i<=n; ++i)
for (j=k+1; j<=n; ++j)
sol[i][j] = ++nr;
}
}
else
{
int i, j, nr = 0;
for (i=1; i<=n; ++i)
for (j=1; j<=k; ++j)
sol[i][j] = ++nr;
for (i=1; i<=n; ++i)
for (j=k+1; j<=n; ++j)
sol[i][j] = ++nr;
}
}
inline void Write()
{
ofstream g("tablete.out");
int i, j;
for (i=1; i<=n; ++i)
{
for (j=1; j<=n; ++j)
g<<sol[i][j]<<" ";
g<<"\n";
}
g.close();
}
int main()
{
Read();
Solve();
Write();
return 0;
}