Cod sursa(job #1891414)

Utilizator andra1782Andra Alazaroaie andra1782 Data 23 februarie 2017 23:38:20
Problema Tablete Scor 90
Compilator c Status done
Runda Arhiva de probleme Marime 1.21 kb
#include <stdio.h>
#define MAX 1002
int t[MAX][MAX],f[MAX*MAX];
int main(){
    FILE *fin=fopen("tablete.in","r");
    FILE *fout=fopen("tablete.out","w");
    int n,k,i,j,v,s;

    fscanf(fin,"%d%d",&n,&k);
    if(k%2==0){
        for(i=0; i<n; i++){
            for(j=0; j<n; j++)
                fprintf(fout,"%d ",i*n+j+1);
            fprintf(fout,"\n");
        }
    }else{
        s=k+1-k%2+1;
        for(i=1; i<n; i++){
            t[i][k]=s*i;
            f[s*i]=1;
        }
        if(s*n>n*n-(n-k+1))
            t[n][k]=n*n-(n-k+1);
        else
            t[n][k]=s*n;
        f[t[n][k]]=1;
        v=1;
        for(i=1; i<=n; i++)
            for(j=1; j<k; j++){
                t[i][j]=v++;
                if(f[v]==1)
                    v++;
                f[v]=1;
            }
        for(i=1; i<=n; i++)
            for(j=k+1; j<=n; j++){
                t[i][j]=v++;
                if(f[v]==1)
                    v++;
                f[v]=1;
            }
        for(i=1; i<=n; i++){
            for(j=1; j<=n; j++)
                fprintf(fout,"%d ",t[i][j]);
            fprintf(fout,"\n");
        }
    }
    fclose(fin);
    fclose(fout);
    return 0;
}