Cod sursa(job #1738495)

Utilizator mariusn01Marius Nicoli mariusn01 Data 6 august 2016 20:09:32
Problema Lacate Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.24 kb
// se da N, numarul de persoane
// sa se determine valoarea minima L si o valoare M asa incat, atribuind fiecarei persoane
// exact M numere distincte cu valori sin multimea {1..L},
// oricum am alege N-1 persoane, reuniunea
// multimilor asociate lor sa contina toate numerele de la 1 la L
// orice grup cu mai putin de N-1 persoane am considera, reuniunea componentelor sa nu fie
// inreaga multime
// se construieste o matrice superior triunghiulara cu numerele consecutive de la 1
// partea de jos se construieste cu un fel de transpusa a ei
// 1 2 3 4
//   5 6 7
//     8 9
//       10
// 1 2 3 4
// 1 5 6 7
// 2 5 8 9
// 3 6 8 10
// 4 7 9 10

#include <cstdio>
#define DIM 257

int a[DIM][DIM];
int n,i,j,k,v;

int main(){
    FILE *f = fopen("lacate.in","r");
    fscanf(f,"%d",&n);
    fclose(f);

    k=1;
    for (i=1;i<n;i++) {
        v = k;
        for (j=i;j<=n-1;j++)
            a[i][j] = v++;
        v = k;
        for (j=i+1;j<=n;j++)
            a[j][i] = v++;
        k=v;
    }

    FILE *g = fopen("lacate.out","w");
    fprintf(g,"%d %d\n",n*(n-1)/2,n-1);
    for (i=1;i<=n;i++){
        for (j=1;j<n;j++)
            fprintf(g,"%d ",a[i][j]);
        fprintf(g,"\n");
    }

    return 0;
}