Mai intai trebuie sa te autentifici.
Cod sursa(job #231658)
| Utilizator | Data | 14 decembrie 2008 12:47:04 | |
|---|---|---|---|
| Problema | Tablete | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Algoritmiada 2009, Runda 1, Clasele 5-8 | Marime | 1.18 kb |
#include <cstdio>
#define NMAX 1024
#define LMAX 1000002
#define INF "tablete.in"
#define OUF "tablete.out"
using namespace std;
int a[NMAX][NMAX]={0};
char used[LMAX]={0};
int main()
{
int n,k,i,j,c;
FILE *in,*out;
in=fopen(INF,"r");
out=fopen(OUF,"w");
fscanf(in,"%d%d",&n,&k);
for(c=1,i=1;i<=n;++c)
if((c%2==0)&&((c-i)>=i*(k-1)))
{
a[i][k]=c;
used[c]=1;
++i;
}
for(c=1,i=1;i<=n;++i)
for(j=1;j<k;++j)
if(!used[c])
{
a[i][j]=c;
used[c++]=1;
}
else
{
while(used[c]) ++c;
a[i][j]=c;
used[c++]=1;
}
for(c=1,i=1;i<=n;++i)
for(j=k+1;j<=n;++j)
if(!used[c])
{
a[i][j]=c;
used[c++]=1;
}
else
{
while(used[c]) ++c;
a[i][j]=c;
used[c++]=1;
}
for(i=1;i<=n;++i,fprintf(out,"\n"))
for(j=1;j<=n;++j) fprintf(out,"%d ",a[i][j]);
fclose(in);fclose(out);
return 0;
}
