Pagini recente » Cod sursa (job #343823) | Cod sursa (job #2234439) | Cod sursa (job #1701498) | Cod sursa (job #175663) | Cod sursa (job #66257)
Cod sursa(job #66257)
#include <assert.h>
#include <stdio.h>
enum { maxpers = 256 };
int pers;
int locks;
int each;
bool has[maxpers][maxpers * maxpers];
void calc_has()
{
int i, j, start = 0;
for(i = pers - 1; i > 0; i--)
{
for(j = 0; j < i; j++)
{
has[pers - i - 1][start + j] = true;
has[pers - i - 1 + j + 1][start + j] = true;
}
start += i;
}
}
int main()
{
int i, j, count;
FILE *f = fopen("lacate.in", "r");
if(!f) return 1;
fscanf(f, "%d", &pers);
fclose(f);
f = fopen("lacate.out", "w");
if(!f) return 1;
locks = pers * (pers - 1) / 2;
each = pers - 1;
fprintf(f, "%d %d\n", locks, each);
calc_has();
for(i = 0; i < pers; i++)
{
count = 0;
for(j = 0; j < locks; j++)
{
if(has[i][j])
{
if(count) fprintf(f, " ");
count++;
fprintf(f, "%d", j + 1);
}
}
assert(count == each);
fprintf(f, "\n");
}
fclose(f);
return 0;
}