Pagini recente » Statistici Dobre Florian Robert (Robert9392) | Cod sursa (job #302275) | Cod sursa (job #1372002) | Cod sursa (job #1977583) | Cod sursa (job #997540)
Cod sursa(job #997540)
#include <fstream>
#define ValMax 1000004
#define Nmax 1002
using namespace std;
bool use[ValMax];
int a[Nmax][Nmax];
int main()
{
int i,j,value, x, n, k;
ifstream f("tablete.in");
f>>n>>k;
f.close();
if(k&1)
{
value = 1;
x = k;
for(i = 1;i <= n; i += 2)
{
value = (i+1)*k;
for(j = k ;j >1; --j)
{
a[i+1][j] = value;
use[value] = 1;
--value;
}
a[i][k] = i*k+1;
use[i*k] = use[i*k+1] = 1;
a[i+1][1] = i*k;
for(j = k-1,value = i*k-1;j ; --j)
{
if(use[value])
--value;
a[i][j] = value;
use[value] = 1;
--value;
}
}
if(n&1)
{
value = 1;
for(i = 1;i < n; ++i)
for(j = k+1;j <= n; ++j)
{
while(use[value])
++value;
a[i][j] = value++;
}
for(j = 1;j <= n; ++j)
{
while(use[value])
++value;
a[i][j] = value++;
}
}
else
{
value = 1;
for(i = 1;i <= n; ++i)
for(j = k+1;j <= n; ++j)
{
while(use[value])
++value;
a[i][j] = value++;
}
}
}
else
{
for(i = value = 1;i <= n; ++i)
for(j = 1;j <= k; ++j)
a[i][j] = value++;
for(i = 1;i <= n; ++i)
for(j = k+1;j <= n; ++j)
a[i][j] = value++;
}
ofstream g("tablete.out");
for(i=1;i<=n;++i)
{
for(j=1;j<=n;++j)
g<<a[i][j]<<" ";
g<<"\n";
}
g.close();
return 0;
}