Pagini recente » Cod sursa (job #667764) | Cod sursa (job #1861040) | Cod sursa (job #665637) | Cod sursa (job #104979) | Cod sursa (job #1738495)
// 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;
}