Cod sursa(job #1883990)

Utilizator EmplopiStefan Nitu Emplopi Data 18 februarie 2017 13:04:34
Problema Tablete Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <stdio.h>
#include <stdlib.h>

int mat[1000][1000];
char freq[1000001];

int main(){
    FILE *fin, *fout;
    int n, k, lim, y, i, j;
    fin=fopen("tablete.in", "r");
    fout=fopen("tablete.out", "w");
    fscanf(fin, "%d%d", &n, &k);
    lim=n*n;
    y=1;
    for(i=1;i<=n;i++){
        if((i*k)%2==0){
            mat[i-1][k-1]=i*k;
            freq[i*k]=1;
        }
        else{
            mat[i-1][k-1]=i*k+1;
            freq[i*k+1]=1;
        }
        for(j=0;j<k-1;j++){
            while(freq[y]==1 && y<=lim)
                y++;
            mat[i-1][j]=y;
            freq[y]=1;
        }
    }
    for(i=1;i<=n;i++){
        for(j=k;j<n;j++){
            while(freq[y]==1 && y<=lim)
                y++;
            mat[i-1][j]=y;
            freq[y]=1;
        }
    }
    for(i=0;i<n;i++){
        for(j=0;j<n;j++)
            fprintf(fout, "%d ", mat[i][j]);
        fprintf(fout, "\n");
    }
    fclose(fin);
    fclose(fout);

    return 0;
}