Cod sursa(job #585514)
Utilizator | Data | 29 aprilie 2011 22:03:28 | |
---|---|---|---|
Problema | Tablete | Scor | 50 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 1.46 kb |
#include<cstdio>
int n, k, p, i, j, a[1001][1001], x, c, t, r;
int main()
{
freopen("tablete.in", "r", stdin);
freopen("tablete.out", "w", stdout);
scanf("%d %d", &n, &k);
p=1;
for(i=1; i<=n; ++i)
for(j=1; j<=k; ++j) if(!a[i][j] && j!=k) { a[i][j]=p;
++p;
}
else if(j==k) if(p%2==0) { a[i][j]=p;
++p;
}
else { a[i][j]=p+1;
a[i+1][1]=p;
p+=2;
}
c=1;
for(i=1; i<=n; ++i)
{ while(c<=x) for(j=1; j<=n; ++j) if(a[i][j]==c) { ++c;
i=1;
j=n+1;
}
else for(t=1; t<=n; ++t)
for(r=k+1; r<=n; ++r) if(c>a[t][r-1]) { a[t][r]=c;
t=n+1;
r=n+1;
++c;
i=1;
j=n+1;
}
}
for(i=1; i<=n; ++i)
for(j=k+1; j<=n; ++j) { a[i][j]=p;
++p;
}
for(i=1; i<=n; ++i)
{ for(j=1; j<=n; ++j) printf("%d ", a[i][j]);
printf("\n");
}
fclose(stdin);
fclose(stdout);
return 0;
}