Cod sursa(job #206428)

Utilizator Poisoned_IvyAnda Nicolae Poisoned_Ivy Data 6 septembrie 2008 17:24:26
Problema Lacate Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 1.28 kb
#include <stdio.h>
int l, c, n;
FILE *f, *g;
    
void det()
{
     int i,j, a[n][c], k;
     for (i=0; i<n; i++)
         for (j=0; j<c; j++)
             a[i][j]=0;
     //prima linie
     for (j=0; j<c; j++)
         a[0][j]=j+1;
     //prima coloana
     for (i=1; i<n; i++)
         a[i][0]=i;
     //a doua linie
     for (j=1; j<c; j++)
         a[1][j]=j+c;
     //diagonala
     for (i=0; i<c-1; i++)
         a[i+1][i+1]=a[i][i]+c-i;
     //cele egale
     for (i=0; i<c; i++)
         a[i+1][i]=a[i][i];
     //partea de sub diag princip
     for (k=2; k<n-1; k++)
     {
         j=0;
         for (i=k; i<n-1; i++)
         {
             a[i+1][j+1]=a[i][j]+c-j;
             j++;
         }
     }
     //partea de deasupra diag princip
     for (k=0; k<n-2; k++)
     {
         i=0;
         for (j=k+1; j<n-2; j++)
         {
             a[i+1][j+1]=a[i][j]+c-i;
             i++;
         }
     } 
     for (i=0; i<n; i++)
     {
         for (j=0; j<c; j++)
             fprintf(g, "%d ", a[i][j]);
         fprintf(g, "\n");
     }
}


int main()
{
    f=fopen("lacate.in", "r");
    g=fopen("lacate.out", "w");
    fscanf(f, "%d", &n);
    c=n-1;
    l=n*c/2;
    fprintf(g, "%d %d\n", l, c);
    det();
    return 0;
}