Cod sursa(job #1127751)
Utilizator | Data | 27 februarie 2014 13:42:15 | |
---|---|---|---|
Problema | Tablete | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 2.52 kb |
#include<stdio.h>
int a[1001][1001];
int main(){
int n,k,x,i,p,l,j;
freopen("tablete.in","r",stdin);
freopen("tablete.out","w",stdout);
scanf("%d%d",&n,&k);
if(k%2==0){
x=1;
for(i=1;i<=n;i++)
for(j=1;j<=k;j++){
a[i][j]=x;
x++;
}
for(i=1;i<=n;i++)
for(j=k+1;j<=n;j++){
a[i][j]=x;
x++;
}
}
else
if(k%2==1&&n%2==0){
p=1;l=1;x=1;
while(p<=n/2){
for(j=1;j<=k;j++){
if(j!=k){
a[l][j]=x;
x++;
}
else{
x++;
a[l][j]=x;
}
}
x--;
a[l+1][1]=x;
x+=2;
for(j=2;j<=k;j++){
a[l+1][j]=x;
x++;
}
p++;
l+=2;
}
for(i=1;i<=n;i++)
for(j=k+1;j<=n;j++){
a[i][j]=x;
x++;
}
}
else{
p=1;l=1;x=1;
while(p<=n/2){
for(j=1;j<=k;j++){
if(j!=k){
a[l][j]=x;
x++;
}
else{
x++;
a[l][j]=x;
}
}
x--;
a[l+1][1]=x;
x+=2;
for(j=2;j<=k;j++){
a[l+1][j]=x;
x++;
}
p++;
l+=2;
}
for(j=1;j<=k;j++){
if(j!=k){
a[l][j]=x;
x++;
}
else{
x++;
a[l][j]=x;
}
}
x--;
a[1][k+1]=x;
x+=2;
for(j=k+2;j<=n;j++){
a[1][j]=x;
x++;
}
for(i=2;i<=n;i++)
for(j=k+1;j<=n;j++){
a[i][j]=x;
x++;
}
}
for(i=1;i<=n;i++){
for(j=1;j<=n;j++)
printf("%d ",a[i][j]);
printf("\n");
}
return 0;
}