Cod sursa(job #2775253)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 15 septembrie 2021 08:59:27
Problema Tablete Scor 100
Compilator c-64 Status done
Runda Arhiva de probleme Marime 1.82 kb
#include<stdio.h>
int n,k,i,j,l,t;
int main()
{
    freopen("tablete.in","r",stdin),freopen("tablete.out","w",stdout),scanf("%d%d",&n,&k);
    if(k%2==0)
        for(i=1,l=n*k;i<=n;++i,l+=n-k) {
            for(j=1;j<=k;++j)
                printf("%d ",(i-1)*k+j);
            for(j=k+1;j<=n;++j)
                printf("%d ",l+j-k);
            printf("\n");
        }
    if(k%2&&n%2==0)
        for(i=1,l=n*k;i<=n;++i,l+=n-k)
            if(i%2) {
                for(j=1;j<k;++j)
                    printf("%d ",(i-1)*k+j);
                printf("%d ",i*k+1);
                for(j=k+1;j<=n;++j)
                    printf("%d ",l+j-k);
                printf("\n");
            } else {
                printf("%d ",k*(i-1));
                for(j=2;j<=k;++j)
                    printf("%d ",k*(i-1)+j);
                for(j=k+1;j<=n;++j)
                    printf("%d ",l+j-k);
                printf("\n");
            }
    if(k%2&&n%2) {
        for(i=1,l=n*k;i<n;++i,l+=n-k)
            if(i%2) {
                for(j=1;j<k;++j)
                    printf("%d ",(i-1)*k+j);
                printf("%d ",i*k+1);
                for(j=k+1;j<=n;++j)
                    if(i==1&&j==k+1)
                        printf("%d ",n*k);
                    else
                        printf("%d ",l+j-k);
                printf("\n");
            } else {
                printf("%d ",k*(i-1));
                for(j=2;j<=k;++j)
                    printf("%d ",k*(i-1)+j);
                for(j=k+1;j<=n;++j)
                    printf("%d ",l+j-k);
                printf("\n");
            }
        for(i=1;i<k;++i)
            printf("%d ",(n-1)*k+i);
        printf("%d ",n*k+1);
        for(i=k+1;i<=n;++i)
            printf("%d ",l+i-k);
        printf("\n");
    }
    return 0;
}