Cod sursa(job #1216899)

Utilizator daniel.dumitranDaniel Dumitran daniel.dumitran Data 6 august 2014 01:23:26
Problema Lacate Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <assert.h>

#define FISIN   "lacate.in"
#define FISOUT  "lacate.out"

#define MAXN 256

int lacate[MAXN][MAXN];
int len[MAXN];
int n;

void add(int pers, int lacat) {
  lacate[pers][len[pers]++] = lacat;
}

int main() {
  FILE *f = fopen(FISIN, "rt");
  fscanf(f, "%d", &n);
  fclose(f);

  f = fopen(FISOUT, "wt");
  if (n == 2) {
    fprintf(f, "1 1\n1\n1\n");
    fclose(f);
    return 0;
  }
  
  int l = 0;
  for (int i = 0; i < n; ++i)
    for (int j = i + 1; j < n; ++j) {
      ++l;
      add(i, l);
      add(j, l);
    }

  fprintf(f, "%d %d\n", l, n - 1);
  for (int i = 0; i < n; ++i) {
    assert(len[i] == n - 1);
    fprintf(f, "%d", lacate[i][0]);
    for (int j = 1; j < n - 1; ++j)
      fprintf(f, " %d", lacate[i][j]);
    fprintf(f, "\n");
  }

  fclose(f);
  return 0;
}