Cod sursa(job #1127751)

Utilizator lauratalaatlaura talaat lauratalaat 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;
}