Pagini recente » Cod sursa (job #971773) | Cod sursa (job #1303923) | Cod sursa (job #2931894) | Simulare 33 | Cod sursa (job #2316826)
#include <cstdio>
long matrice[1001][1001];
bool vector_marcaj[1000001];
long n, k;
void caz1()
{
int i, j, k=0;
for(i=1;i<=n;++i)
for(j=1;j<=n;++j) matrice[i][j]=++k;
}
void caz2()
{
int i, j;
long p;
long nr = n * n;
matrice[1][k]= k + 1;
vector_marcaj[matrice[1][k ]] = 1;
for(i = 2; i <= n; i++)
if(i % 2 != 0) {
matrice[i][k] = matrice[i - 1][k] + k - 1;
vector_marcaj[matrice[i][k]] = 1;
}
else {
matrice[i][k] = matrice[i - 1][k] + k + 1;
vector_marcaj[matrice[i][k]] = 1 ;
}
p = 0;
for(i = 1; i <= n; i++)
for(j = 1; j <= k; j++)
if(!matrice[i][j])
{
++k;
while(vector_marcaj[k] && k <= nr) ++p;
matrice[i][j]=k;
}
for(i = 1;i <= n; i++)
for(j = k+ 1;j <= n;j ++ )
if(!matrice[i][j])
{
++p;
while(vector_marcaj[p] && p <= nr) ++p;
matrice[i][j]=k;
}
}
void caz3()
{
int i, j, p = 0;
for(i = 1;i <= n; i++)
for(j = 1; j <= k; j++) matrice[i][j] = ++p;
for(i = 1;i <= n; i++)
for(j = p + 1;j <= n; j++) matrice[i][j] = ++p;
}
int main()
{
FILE *f = fopen("tablete.in", "r");
FILE *g = fopen("tablete.out", "w+");
fscanf(f, "%d%d", &n, &k);
if((n % 2 == 0) && (k % 2 == 0) ) caz1();
if((n % 2 == 0) && (k % 2 != 0)) caz2();
if((n % 2 != 0) && (k % 2 != 0)) caz2();
if((n % 2 != 0) && (k % 2 == 0)) caz3();
int i, j;
for(i = 1;i <= n; i++)
{
for(j = 1;j <= n; j++)
fprintf(g, "%d ", matrice[i][j]);
fprintf(g, "\n");
}
return 0;
}